为MIPS平台交叉编译libSDL时出现的问题
我试图为我的mips平台编译libSDL-1.2.14。
但它没有成功。为MIPS平台交叉编译libSDL时出现的问题
这些是我尝试了步骤:
- 出口PATH = /选择/ MIPS-4.3/bin中:$ PATH
- 走到libSDL-1.2.14源文件夹内。
- 给予了 “的./configure前缀=的/ usr /本地/ SDL_Lib主机= MIPS-Linux的GNU”
- 执行的 “make” 命令
这是接收到的错误:
cc1: warning: include location "/usr/include" is unsafe for cross-compilation
./src/audio/dma/SDL_dmaaudio.c: In function 'DMA_WaitAudio': ./src/audio/dma/SDL_dmaaudio.c:167: error: can't find a register in class 'COP3_REGS' while reloading 'asm'
./src/audio/dma/SDL_dmaaudio.c:167: error: 'asm' operand has impossible constraints make: * [build/SDL_dmaaudio.lo] Error 1
,但后来不给下面的命令重新生成文件:
- 使清洁
- ./configure --prefix =/usr/local/SDL_Lib --host = mips-linux-gnu CPPFLAGS = -I/opt/mips-4.3/mips-linux-gnu/libc/usr/include/
- make
注意:/opt/mips-4.3/mips-linux-gnu/libc/usr/include/ - 这是您可以找到mips平台的select.h文件的路径。它包含宏FD_ZERO和FD_SET的定义。
我仍然收到同样的错误。
cc1: warning: include location "/usr/include" is unsafe for cross-compilation
./src/audio/dma/SDL_dmaaudio.c: In function 'DMA_WaitAudio':
./src/audio/dma/SDL_dmaaudio.c:167: error: can't find a register in class 'COP3_REGS' while reloading 'asm'
./src/audio/dma/SDL_dmaaudio.c:167: error: 'asm' operand has impossible constraints make: * [build/SDL_dmaaudio.lo] Error 1
请帮助我一些有价值的指针。
感谢,
森
首先,不要将路径设置交叉编译器为您的PATH的第一部分,将其设置为最后:
export PATH=$PATH:<path to cross-compiler>
它的安全这样。其次,运行./configure --help以获取所有选项。什么是错误讯息会说,如果它是聪明如下:
- 你试图交叉编译,因为你设置--host标志
- 但你不改变任何对于在哪里可以找到其他的选择包括和目标环境库
- 我将使用/ usr/include目录默认
- 但是,这对于主机系统时,交叉编译
检查其他配置e需要设置的选项,以告诉configure脚本在何处查找.h文件(包括)以及目标库。这些通常与您下载的交叉编译器一起提供。此外,在运行配置之前,您应该将CROSS_COMPILE环境变量设置为交叉编译器前缀。前缀是交叉编译器中gcc之前的部分,假设您使用GCC作为交叉编译器。
关于“/ usr/include”警告,通常在没有访问系统头文件的情况下从chroot环境进行交叉编译通常更容易。 – ninjalj 2010-11-20 12:30:18