使用automake配置脚本在64位Linux上构建32位?

时间:2010-07-16 04:22:47

标签: autotools configure automake

我使用的是64位系统但需要一组32位二进制文​​件。我必须将哪些选项传递给configure脚本才能生成32位/ x86 makefile?

5 个答案:

答案 0 :(得分:65)

答案 1 :(得分:43)

杰克的回答不完整。

您需要编译器/ libc支持32位编译。在像Ubuntu这样的发行版中,您需要做的是安装包gcc-multilib和/或g++-multilib

sudo apt-get install gcc-multilib g++-multilib

然后你可以像你说的那样调用configure,指定一个32位主机并传递32位编译标志:

./configure --host=i686-linux-gnu "CFLAGS=-m32" "CXXFLAGS=-m32" "LDFLAGS=-m32"

如果您没有安装multilib,则在传递configure: error: C compiler cannot create executables标记时会出现-m32之类的错误。

答案 2 :(得分:7)

我通过设置自定义编译器取得了更好的成功。这样,所有配置测试,甚至是使用自定义CFLAGS的配置测试都能正常工作:

./configure CC="gcc -m32" CXX="g++ -m32"

当然,您仍然需要应用程序使用的所有库的32位版本,因此有关缺少库的任何错误都指的是32位版本。

答案 3 :(得分:3)

假设gcc / g ++:

CPPFLAGS=-m32 ./configure ...

答案 4 :(得分:1)

上述内容的另一种方法是(如果有的话)使用专用的x86编译器。然后配置行就像这样(我在模式“< toolname> -x86”之后命名为x86-tools):

CC="/path/to/c/compiler/gcc-x86" CXX="path/to/cpp/compiler/g++-x86" LD="path/to/linker/ld-x86" ./configure