交叉编译MIPS平台的libSDL中的问题

时间:2010-11-20 09:41:51

标签: linux sdl mips cross-compiling

我正在尝试为我的mips平台编译libSDL-1.2.14 但它没有成功。

这些是我尝试过的步骤:

  1. export PATH = / opt / mips-4.3 / bin:$ PATH
  2. 进入libSDL-1.2.14源文件夹。
  3. 给了一个“./configure --prefix = / usr / local / SDL_Lib --host = mips-linux-gnu”
  4. 执行“make”命令
  5. 这是收到的错误:

      

    cc1:警告:包含位置   “/ usr / include”不安全   交叉编译
      ./src/audio/dma/SDL_dmaaudio.c:In   函数'DMA_WaitAudio':   ./src/audio/dma/SDL_dmaaudio.c:167:   错误:在课堂上找不到寄存器   重新加载'asm'时'COP3_REGS'   ./src/audio/dma/SDL_dmaaudio.c:167:   错误:'asm'操作数不可能   约束条件: *   [build / SDL_dmaaudio.lo]错误1

    但后来我通过提供以下命令重新配置了make文件:

    1. make clean
    2. ./ configure --prefix = / usr / local / SDL_Lib --host = mips-linux-gnu CPPFLAGS = -I / opt / mips-4.3 / mips-linux-gnu / libc / usr / include /
    3. 使
    4. 注意:/opt/mips-4.3/mips-linux-gnu/libc/usr/include/ - 这是您可以找到mips Platform的select.h文件的路径。 它包含宏FD_ZERO和FD_SET的定义。

      我仍然遇到同样的错误。

        

      cc1:警告:包含位置   “/ usr / include”不安全   交叉编译
        ./src/audio/dma/SDL_dmaaudio.c:In   function'DMA_WaitAudio':
        ./src/audio/dma/SDL_dmaaudio.c:167:   错误:在课堂上找不到寄存器   重新加载'asm'时'COP3_REGS'   ./src/audio/dma/SDL_dmaaudio.c:167:   错误:'asm'操作数不可能   约束条件: *   [build / SDL_dmaaudio.lo]错误1

      请帮我一些有价值的指示。

      谢谢,

1 个答案:

答案 0 :(得分:2)

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

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

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

  1. 您正在尝试交叉编译,因为您正在设置--host标志
  2. 但您没有更改任何其他选项,以查找目标环境的包含和库的位置
  3. 我打算默认使用/ usr / include
  4. 但这是主机系统,在交叉编译时不起作用
  5. 检查您需要设置哪些其他配置选项,以告知配置脚本在何处查找.h文件(包括)和目标库。这些通常伴随您下载的交叉编译器。此外,您应该在运行 configure 之前将CROSS_COMPILE环境变量设置为交叉编译器前缀。假设您使用GCC作为交叉编译器,前缀是交叉编译器中gcc之前的部分。