2013-12-20 243 views
1

我想交叉编译libSDL版本1.2的自定义,基于Debian的Linux系统。我正在使用的工具链已经正确配置,因此我只需在所需的代码上运行gcc/g ++,并且生成的输出与目标机器兼容。交叉编译libSDL

当我在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

你的确应该设置这两个。

假设你的交叉编译住在/ usr/x86_64的-W64-mingw32的与您的系统的主机被称为x86_64的未知Linux的GNU的,你应该像这样配置它:

configure \ 
    --prefix=/usr/x86_64-w64-mingw32 \ 
    --build=x86_64-unknown-linux-gnu \ 
    --host=x86_64-w64-mingw32 

它实际上很容易! :)

+0

好的完美,所以对于'--host'标志,我应该把'x86_64-unknown-linux-gnu',因为这是系统类型,或者'i686-pc-linux-gnu'因为这就是我'建立应用程序(32位)?对于'--build'标志,我放置的是什么?交叉编译的要点是使用一个工具链,所以主机系统并不重要 –

+0

放入--build标志的内容并不重要,因为这样configure脚本就可以检测到你正在交叉编译。我不确定这有什么帮助,但它可能会尝试更难以使构建工作,或什么。 :) 它甚至会告诉你,如果--build和--host不同,它现在正在交叉编译。 – Svenstaro