我使用的是64位系统,但我想要一组32位的二进制文件。要生成32位/x86生成文件,必须将哪些选项传递给配置脚本?
发布于 2010-07-25 12:46:31
通过将以下参数传递给configure脚本,我可以在64位Linux上构建32位库
./configure --build=i686-pc-linux-gnu CFLAGS=-m32 CXXFLAGS=-m32 LDFLAGS=-m32
发布于 2013-07-19 22:03:24
杰克的回答是不完整的。
32位编译需要编译器/libc支持。在像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
旗帜。
发布于 2015-02-21 06:52:06
我有更好的成功,而不是设置一个自定义的编译器。这样,所有的配置测试,即使是使用自定义CFLAGS的测试,都可以正常工作:
./configure CC="gcc -m32" CXX="g++ -m32"
当然,您仍然需要应用程序使用的所有库的32位版本,所以任何关于缺失库的错误都是指32位库。
https://stackoverflow.com/questions/3261909
复制相似问题