Linux 交叉编译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

我正在尝试为定制的基于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.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不同,它现在是交叉编译的。