今天交叉编译libiconv,make的时候报错:
libiconv.so: file not recognized: File format not recognized
collect2: ld returned 1 exit status
文件格式不对,查了一下libiconv.so的文件格式
file libiconv.so
libiconv.so: ELF 64-bit LSB relocatable, x86-64, version 1 (SYSV), not stripped
是x86-64的,而我要编译的是arm版本的,所以这里报错了。
回退找到编译libiconv1.9.2版本的方法:
1、解压 libiconv-1.9.2.tar.gz;进入libiconv-1.9.2目录
2、./configure –host=arm-himix200-linux-gnueabi(错误) ——生成动态库
3、在工程中使用makeall.sh进行剩下的编译
错误原因在于第二步,此处不是使用自己的交叉编译链(实际应该使用:./configure –host=arm-none-linux-gnueabi),只是库本身的用何用方式编译的一个选择(本人刚入行的菜鸟,不保证正确性,但是本人这样实践后就没有这个问题了)