AI智能
改变未来

linux交叉编译时报错:file not recognized: File format not recognized

今天交叉编译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),只是库本身的用何用方式编译的一个选择(本人刚入行的菜鸟,不保证正确性,但是本人这样实践后就没有这个问题了)

赞(0) 打赏
未经允许不得转载:爱站程序员基地 » linux交叉编译时报错:file not recognized: File format not recognized