Linux 交叉编译libSDL
我正在尝试为定制的基于debian的Linux系统交叉编译libSDL 1.2版。我正在使用的工具链已经正确配置,因此我只需在我的计算机上运行gcc/g++即可获得所需的代码,并且生成的输出与目标计算机兼容 当我在libSDL源目录中运行Linux 交叉编译libSDL,linux,compilation,sdl,cross-compiling,configure,Linux,Compilation,Sdl,Cross Compiling,Configure,我正在尝试为定制的基于debian的Linux系统交叉编译libSDL 1.2版。我正在使用的工具链已经正确配置,因此我只需在我的计算机上运行gcc/g++即可获得所需的代码,并且生成的输出与目标计算机兼容 当我在libSDL源目录中运行/configure--help时,我发现基本上可以设置一些环境变量来指向我的交叉编译器 但是,我也看到了以下选项: System types: --build=BUILD configure for building on BUILD [guess
/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.in
、build scripts/config.sub
和build scripts/config.guess
文件,但无法真正理解它是如何工作的
是否需要这些选项?如果不是,使用它们是一个好主意吗?如果使用它们是个好主意,那么如何获得可能值的列表?您确实应该设置这两个值 假设您的交叉编译器位于/usr/x86_64-w64-mingw32中,并且您的系统主机名为x86_64-unknown-linux-gnu,则应按如下方式配置它:
configure \
--prefix=/usr/x86_64-w64-mingw32 \
--build=x86_64-unknown-linux-gnu \
--host=x86_64-w64-mingw32
其实很简单!:) 好的,很好,那么对于
--host
标志,我应该放置x86_64-unknown-linux-gnu
,因为这是系统类型,还是i686 pc-linux-gnu
,因为这是我构建应用程序的方式(32位)?对于--build
标志,我放什么重要吗?交叉编译的要点是使用一个工具链,这样主机系统就不重要了。不管您在--build标志中输入了什么,因为这样配置脚本可以检测到您正在进行交叉编译。我不确定这到底有多大帮助,但它可能会更努力地使构建工作正常进行,或者做其他事情。:)它甚至会告诉您,如果--build和--host不同,它现在是交叉编译的。