为什么我在Eclipse中遇到“无法识别的仿真模式:32”错误?

时间:2009-03-19 19:59:58

标签: c++ eclipse compiler-construction g++

为什么在使用-m32参数进行编译时会出现此错误?

  

无法识别的仿真模式:32

我正在x86_64机器上使用g ++进行编译。它发生在一个项目中,而不是另一个项目...任何提示?

注意:我正在使用Eclipse CDT,所以这可能是IDE特定的gocha?

改述问题

也许更好的问题是:在x86_64机器上运行时,在Eclipse中构建x86二进制文件的最佳方法是什么?

2 个答案:

答案 0 :(得分:4)

似乎在Eclipse中,如果在编译器选项中指定了,则必须在错误的链接器选项中指定-m32。

当您引用不存在的库路径时,会出现“无法识别的仿真模式:32”错误消息 - 这很奇怪!

答案 1 :(得分:3)

在一个项目中,您意外地将-m传递给链接器。 GNU链接器(ld)支持-m选项以指定仿真模式。仿真包含链接描述文件,输出对象文件格式及其参数 - 如起始地址。注意不要将-m放到LDFLAGS上,而是放到CXXFLAGS(C ++编译器标志)或CFLAGS(c编译器标志)。

例如,我的ld支持仿真模式elf_i386和i386linux,分别用于生成ELF二进制文件和a.out二进制文件。

相关问题