code::blocks编译出错

code::blocks编译出错

问题描述:

  在windows xp 上编译的cbp项目(已经生成.obj文件),放到fedora上无法顺利编译.(build)

  collect2:error: ld returned 1 exit status

  process terminated with status 1 (0 minutes(s), 0 seconds(s))

  code::blocks编译出错

解决:

不可识别的文件类型。
如果尝试把不同编译器编译出的object文件链接到一起,会出现这种问题。

用file查看文件类型,例如
[pz@ubuntu:~]$ file mxml/libmxml.so mxml/libmxml.so: ELF 32-bit LSB shared object, ARM, version 1 (SYSV), not stripped

这里看到 libmxml.so 是ARM的so,但是ARM编译器有很多种,file看不出具体是哪个平台的object。通常,将程序从一个arm平台移植到另一个arm平台时会遇到这种问题。

(参见:百度贴吧: http://tieba.baidu.com/p/234600296)

直白点:把项目文件中的.o文件删除,然后重新编译.

  (咦?貌似项目clean没有其它平台的清除编译器生成.o文件?)