我正在尝试交叉编译libSDL版本1.2,用于定制的、基于debian的Linux系统。我使用的工具链已经被正确配置,这样我就可以在我想要的代码上运行gcc/g++,并且结果输出与目标机器兼容。
当我在./configure --help源目录中运行libSDL时,我看到基本上可以设置一些环境变量来指向我的交叉编译器。
然而,我也看到以下选择:
System types:
--build=BUILD configure for building on BUILD [guessed]
--host=HOST cross-compile to build programs to run on HOST [BUILD]我查看了configure.in、build-scripts/config.sub和build-scripts/config.guess文件,但不知道它是如何工作的。
是否需要这些选择?如果没有,那么使用它们是个好主意吗?
发布于 2013-12-20 13:42:46
使用自动工具,--build是您正在构建的,而--host是您希望它运行的东西(也有--target,但只有在编译本身是编译器的情况下,这才是重要的)。自动工具通常会自己计算出--build,所以如果不必指定它,就不要指定它(但是在/usr/lib/gcc中查看编译器可能认为--build应该是什么)。
所以,如果你是为i686 on x86_64而建的,那么就做
./configure --host=i686-linux-gnu (在CFLAGS中使用-m32选项等等,但听起来你已经准备好了。)
然而,如果您正在为x86_64在i686上构建,请执行
./configure --host=x86_64-linux-gnu(您可以为各种疯狂的主机构建: of 6000-ibm-aix,sparc-sun-solaris,mips-idt-ecoff等,假设您安装了适当的gcc交叉编译器.)
GNU的页面在这里:
002dCompilation.html
https://stackoverflow.com/questions/20708365
复制相似问题