如何将-m elf_i386传递给gcc?

时间:2012-07-31 21:03:27

标签: gcc ld

我是这样写的:

 gcc -m elf_i386

它说:

gcc: error: elf_i386: No such file or directory

基本上我试图在64位系统上编译一个32位程序,但错误:

/usr/lib64/gcc/x86_64-suse-linux/4.6/../../../../x86_64-suse-linux/bin/ld: 
skipping incompatible /usr/lib/libSDL.so when searching for -lSDL

我已经检查了使用-m32构建的项目,我可以看到所有* .o文件都是ELF 32位LSB,而/usr/lib/libSDL.so也是ELF 32位LSB .. .so我可能需要将-m elf_i386传递给ld对吗?但我不直接使用ld我只是用gcc来编译它。

1 个答案:

答案 0 :(得分:7)

gcc -m32

是你想要的。正如Alan Curry在评论中提到的那样,elf_i386通过gcc传递给ld(如果需要)。

“跳过不兼容的库”警告只是一个警告,如果它没有提出“找不到库”,那么你可以假设它链接到正确的二进制文件(因为-m32选项)