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来编译它。
答案 0 :(得分:7)
gcc -m32
是你想要的。正如Alan Curry在评论中提到的那样,elf_i386通过gcc传递给ld(如果需要)。
“跳过不兼容的库”警告只是一个警告,如果它没有提出“找不到库”,那么你可以假设它链接到正确的二进制文件(因为-m32选项)