我想创建我的源代码的二进制可执行文件,以便在32位gcc机器上运行。但我安装了64位gcc。有没有办法从我的64位gcc ??
为32位gcc机器创建二进制可执行文件答案 0 :(得分:1)
您需要让GCC使用-m32标志。
您可以尝试将简单的shell脚本编写到$ PATH并将其命名为gcc(确保您不会覆盖原始gcc,并确保新脚本在$ PATH中更早出现,并且它使用了GCC的完整路径。
编译你的二进制文件,如 - :
/bin/gcc -m32 "source file"
答案 1 :(得分:1)
我的机器默认为 ELF 64位LSB ,如果你编译它会产生64位可执行文件。
gcc hello.c -o hello
使用文件进行检查
hello: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.24, BuildID[sha1]=9f8fa8ac13fc03672306da1d5d4ee6671114eb11, not stripped
使用标志-m32,然后强制编译器为32位
gcc -m32 hello.c -o hello
file hello
hello : ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.24, BuildID[sha1]=c72216023939b2832467c624850f164d1857e645, not stripped
如果您正在寻找交叉编译,这可能有助于您How to determine host value for configure when using cross compiler