6

我是这样写的:

 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 ......所以我可能需要将 -m elf_i386 传递给 ld 对吗?但我不直接使用 ld 我只是使用 gcc 来编译它。

4

1 回答 1

9
gcc -m32

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

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

于 2012-08-01T15:50:47.430 回答