为MIPS平台交叉编译libSDL时出现的问题

问题描述:

我试图为我的mips平台编译libSDL-1.2.14。
但它没有成功。为MIPS平台交叉编译libSDL时出现的问题

这些是我尝试了步骤:

  1. 出口PATH = /选择/ MIPS-4.3/bin中:$ PATH
  2. 走到libSDL-1.2.14源文件夹内。
  3. 给予了 “的./configure前缀=的/ usr /本地/ SDL_Lib主机= MIPS-Linux的GNU”
  4. 执行的 “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

,但后来不给下面的命令重新生成文件:

  1. 使清洁
  2. ./configure --prefix =/usr/local/SDL_Lib --host = mips-linux-gnu CPPFLAGS = -I/opt/mips-4.3/mips-linux-gnu/libc/usr/include/
  3. 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

请帮助我一些有价值的指针。

感谢,

+0

关于“/ usr/include”警告,通常在没有访问系统头文件的情况下从chroot环境进行交叉编译通常更容易。 – ninjalj 2010-11-20 12:30:18

首先,不要将路径设置交叉编译器为您的PATH的第一部分,将其设置为最后:

export PATH=$PATH:<path to cross-compiler> 

它的安全这样。其次,运行./configure --help以获取所有选项。什么是错误讯息会说,如果它是聪明如下:

  1. 你试图交叉编译,因为你设置--host标志
  2. 但你不改变任何对于在哪里可以找到其他的选择包括和目标环境库
  3. 我将使用/ usr/include目录默认
  4. 但是,这对于主机系统时,交叉编译
这将无法正常工作

检查其他配置e需要设置的选项,以告诉configure脚本在何处查找.h文件(包括)以及目标库。这些通常与您下载的交叉编译器一起提供。此外,在运行配置之前,您应该将CROSS_COMPILE环境变量设置为交叉编译器前缀。前缀是交叉编译器中gcc之前的部分,假设您使用GCC作为交叉编译器。