交叉编译libSDL

时间:2013-12-20 00:24:18

标签: linux configure compilation

我正在尝试为自定义的基于debian的Linux系统交叉编译libSDL 1.2版。我正在使用的工具链已经正确配置,因此我只需在我想要的代码上运行gcc / g ++,结果输出与目标机器兼容。

当我在libSDL源目录中运行./configure --help时,我发现我基本上可以设置一些环境变量来指向我的交叉编译器。

但是,我也看到以下选项:

System types:
  --build=BUILD     configure for building on BUILD [guessed]
  --host=HOST       cross-compile to build programs to run on HOST [BUILD]

我查看了configure.inbuild-scripts/config.subbuild-scripts/config.guess文件,但无法弄清楚它是如何工作的。

是否需要这些选项?如果没有,使用它们是否是个好主意?

1 个答案:

答案 0 :(得分:1)

使用自动工具,您正在构建--build并且--host是您希望它运行的内容(还有--target,但这只有在您正在编译的内容时才重要本身就是一个编译器)。 Autotools通常会自己找出--build,所以如果你不需要,请不要指定它(但请查看/usr/lib/gcc以查看编译器可能认为--build应该是什么)

因此,例如,如果您在x86_64上为i686构建,请执行

./configure --host=i686-linux-gnu 

(并使用CFLAGS等中的-m32选项,但听起来你已经准备好了。)

如果您在i686上为x86_64构建,请执行

./configure --host=x86_64-linux-gnu

(你可以为所有类型的疯狂主机构建:rs6000-ibm-aix,sparc-sun-solaris,mips-idt-ecoff等等......假设你安装了相应的gcc交叉编译器...... )

GNU的页面就在这里:

http://www.gnu.org/software/automake/manual/html_node/Cross_002dCompilation.html