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))
解决:
不可识别的文件类型。
如果尝试把不同编译器编译出的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文件?)