+ -
当前位置:首页 → 问答吧 → Jpcsp 运行了两次,突然不能运行了。

Jpcsp 运行了两次,突然不能运行了。

时间:2011-07-05

来源:互联网

这段时间在做嵌入式linux的开发,开发板为Intel PXA270,用的arm-linux-gcc的交叉编译环境。

在编译PCSX4all时出现以下错误:
Compiling src/r3000a.cpp...
/home/gcc/arm-linux-gcc/bin/g++ -march=armv5t -mtune=xscale -mfpu=vfp -O3 -Os `sdl-config --cflags` -D__ARM_EABI__ -Isrc -Isrc/zlib -Isrc/spu/spu_franxis -Dspu_franxis -Isrc/gpu/gpu_unai -Dgpu_unai -Dinterpreter_new -Darm -Dgte_new -Isrc/port/sdl -Isrc/gte/gte_new -DXA_HACK -DBIOS_FILE=\"scph1001.bin\" -DMCD1_FILE=\"mcd001.mcr\" -DMCD2_FILE=\"mcd002.mcr\" -D__arm__ -DWIZ -DINLINE="static __inline" -Dasm="__asm__ __volatile__" -Wshadow -DPSXREC -msoft-float -ffast-math -fomit-frame-pointer -fstrict-aliasing -mstructure-size-boundary=32 -fexpensive-optimizations -fweb -frename-registers -falign-functions=32 -falign-loops -falign-labels -falign-jumps -finline -finline-functions -fno-common -fno-builtin -Wall -Wno-sign-compare -Wunused -Wpointer-arith -Wcast-align -Waggregate-return -c src/r3000a.cpp -o obj/r3000a.o
/bin/sh: line 1: /home/gcc/arm-linux-gcc/bin/g++: cannot execute binary file
make: *** [obj/r3000a.o] Error 126
究竟是什么问题呢?

作者: feixiangboji   发布时间: 2011-07-05

Linux内核版本:2.4.20
ARM-LINUX-GCC版本:3.2.2
makefile如下:

TARGET = bin/pcsx4all
FRONTEND = bin/frontend
PORT = sdl
#GPU = gpu_dfxvideo
#GPU = gpu_drhell
#GPU = gpu_null
GPU = gpu_unai
#SPU = spu_dfxsound
#SPU = spu_null
SPU = spu_franxis
#INTERPRETER = interpreter_pcsx
INTERPRETER = interpreter_new
#RECOMPILER = arm_old
RECOMPILER = arm
#GTE = gte_pcsx
GTE = gte_new

RM = rm -f
CROSS = /home/gcc/arm-linux-gcc
CC = $(CROSS)/bin/gcc
CPP = $(CROSS)/bin/g++
LD = $(CROSS)/bin/g++
MD = @mkdir
RM = @rm -f
DEVLIBS =

BIOS_FILE = \"scph1001.bin\"
MCD1_FILE = \"mcd001.mcr\"
MCD2_FILE = \"mcd002.mcr\"
#
CFLAGS = -march=armv5t -mtune=xscale -mfpu=vfp -O3 -Os `sdl-config --cflags` $(DEVLIBS) -D__ARM_EABI__ \
-Isrc -Isrc/zlib -Isrc/spu/$(SPU) -D$(SPU) -Isrc/gpu/$(GPU) -D$(GPU) -D$(INTERPRETER) -D$(RECOMPILER) -D$(GTE) -Isrc/port/$(PORT) -Isrc/gte/$(GTE) \
-DXA_HACK -DBIOS_FILE=$(BIOS_FILE) -DMCD1_FILE=$(MCD1_FILE) -DMCD2_FILE=$(MCD2_FILE) \
-D__arm__ -DWIZ -DINLINE="static __inline" -Dasm="__asm__ __volatile__" -Wshadow -DPSXREC \
-msoft-float -ffast-math -fomit-frame-pointer -fstrict-aliasing \
-mstructure-size-boundary=32 -fexpensive-optimizations \
-fweb -frename-registers -falign-functions=32 -falign-loops -falign-labels -falign-jumps \
-finline -finline-functions -fno-common -fno-builtin \
-Wall -Wno-sign-compare -Wunused -Wpointer-arith -Wcast-align -Waggregate-return

# -fsigned-char
# -Wstrict-prototypes -Wbad-function-cast
# -Wshadow

#CFLAGS += -DPROFILER_PCSX4ALL
#CFLAGS += -DPROFILER_PCSX4ALL_RESET=8000
#CFLAGS += -DDEBUG_PCSX4ALL
#CFLAGS += -DDEBUG_PCSX4ALL_FFLUSH
#CFLAGS += -DDEBUG_START=3438
#CFLAGS += -DDEBUG_START=0
#CFLAGS += -DDEBUG_CPU
#CFLAGS += -DDEBUG_CPU_OPCODES
#CFLAGS += -DDEBUG_FRAME
#CFLAGS += -DAUTOEVENTS
#CFLAGS += -DAUTOEVENTS_MAX=8500

LDFLAGS = -s

OBJDIRS = obj obj/gpu obj/gpu/$(GPU) obj/spu obj/spu/$(SPU) obj/interpreter obj/interpreter/$(INTERPRETER) obj/recompiler obj/recompiler/$(RECOMPILER) obj/zlib obj/port obj/port/$(PORT) obj/gte obj/gte/$(GTE)

all: maketree $(TARGET)

OBJS = obj/r3000a.o obj/misc.o obj/plugins.o obj/psxmem.o obj/psxhw.o obj/psxcounters.o \
obj/psxdma.o obj/psxbios.o obj/psxhle.o obj/interpreter/$(INTERPRETER)/psxinterpreter.o obj/recompiler/$(RECOMPILER)/recompiler.o obj/recompiler/$(RECOMPILER)/run.o obj/gte/$(GTE)/gte.o obj/mdec.o \
obj/decode_xa.o obj/cdriso.o obj/cdrom.o obj/sio.o obj/pad.o

OBJS += obj/gpu/$(GPU)/gpu.o obj/port/sdl/frontend.o

ifneq ($(strip $(findstring arm,$(CFLAGS))),)
ifneq ($(strip $(findstring gpu_unai,$(GPU))),)
CFLAGS +=
endif
endif

OBJS += obj/spu/$(SPU)/spu.o

OBJS += obj/zlib/adler32.o obj/zlib/compress.o obj/zlib/crc32.o obj/zlib/gzio.o \
obj/zlib/uncompr.o obj/zlib/deflate.o obj/zlib/trees.o obj/zlib/zutil.o \
obj/zlib/inflate.o obj/zlib/infblock.o obj/zlib/infcodes.o obj/zlib/inftrees.o \
obj/zlib/inffast.o obj/zlib/infutil.o

OBJS += obj/port/sdl/port.o

OBJS += obj/profiler.o obj/debug.o

$(TARGET): $(OBJS)
$(LD) $(CFLAGS) $(LDFLAGS) $(OBJS) `sdl-config --libs` -lSDL -lm -o $@
arm-linux-gnueabi-strip $(TARGET)



obj/recompiler/arm/recompiler.o: src/recompiler/arm/arm.h src/recompiler/arm/opcodes.h \
src/recompiler/arm/rec_alu.h src/recompiler/arm/rec_branch.h src/recompiler/arm/rec_gte.h \
src/recompiler/arm/rec_mem.h src/recompiler/arm/rec_misc.h src/recompiler/arm/recompiler.cpp \
src/recompiler/arm/risc_armv4le.h

obj/%.o: src/%.c
@echo Compiling $<...
$(CC) $(CFLAGS) -c $< -o $@

obj/%.o: src/%.cpp
@echo Compiling $<...
$(CPP) $(CFLAGS) -c $< -o $@

obj/%.o: src/%.s
@echo Compiling $<...
$(CPP) $(CFLAGS) -c $< -o $@

obj/%.o: src/%.S
@echo Compiling $<...
$(CPP) $(CFLAGS) -c $< -o $@

$(sort $(OBJDIRS)):
$(MD) $@

maketree: $(sort $(OBJDIRS))

clean:
rm -f $(OBJS)
rm -f $(TARGET)

FOBJS = obj/port/sdl/frontend.o

$(FRONTEND): $(FOBJS)
$(LD) $(CFLAGS) $(LDFLAGS) $(FOBJS) `sdl-config --libs` -lSDL -lm -o $@

作者: feixiangboji   发布时间: 2011-07-05

热门下载

更多