arm-linux-gcc交叉编译JPEG库的问题?

时间:2022-03-23 02:16:05
目前由于工作的需要要把MiniGUI移植到ARM-Linux平台下,可是在交叉编译JPEG库的时候提示这样的问题:
/usr/bin/ld: .libs/jaricom.o: Relocations in generic ELF (EM: 40)
/usr/bin/ld: .libs/jaricom.o: Relocations in generic ELF (EM: 40)
.libs/jaricom.o: could not read symbols: File in wrong format
collect2: ld returned 1 exit status
make[1]: *** [libjpeg.la] Error 1
make[1]: Leaving directory `/root/jpeg-7'

这样的问题明显是/usr/bin/ld没有使用arm-linux-ld造成的,可是更改Makefile后,其他的像CC等也修改为Arm-Linux下的Toolschain,重新Make,可结果还是出现以上的问题?真的莫名其妙?
而且查看Makefile,没有发现有使用$(LD)的地方,因为jpeg是要编译成静态库,即:libjpeg.la,所以根本不会使用到linker吧,被这问题整的好郁闷呀?

有哪位大侠知道这是什么回事吗?帮忙指点指点,谢了...

4 个解决方案

#1


$(AR)呢?

#2


其它的都交叉编译了吗?楼主什么平台,为什么不选择 Qt,用MiniGUI的太少了

#3


有谁遇到此问题吗?

#4


我用的是jepg9,至于6b不知道,这个问题我也遇到了:  
CCLD     libjpeg.la
/usr/bin/ld: .libs/jaricom.o: Relocations in generic ELF (EM: 40)
/usr/bin/ld: .libs/jaricom.o: Relocations in generic ELF (EM: 40)
.libs/jaricom.o: could not read symbols: File in wrong format
collect2: ld returned 1 exit status
make[1]: *** [libjpeg.la] Error 1
make[1]: Leaving directory `/home/wangqi/jpeg-9'
make: *** [all] Error 2
解决办法是./configure 的时候要配置好:
./configure CC=arm-fsl-linux-gnueabi-gcc LD=arm-fsl-linux-gnueabi-ld --prefix=/home/wangqi/lib-jpeg/ --exec-prefix=/home/wangqi/lib-jpeg/ --enable-shared --enable-static --host=arm-fsl-linux-gnueabi
CC是编译器
LD要配置
--host最好设成CC和LD中除了-gcc和-ld的前面部分,如arm-fsl-linux-gnueabi,因为生产的makefile中就可以自动添加arm-fsl-linux-gnueabi-ramlib之类的,省去自己手头设置。
最后make的时候就不是用/usr/bin/ld了,就可以通过编译 

#1


$(AR)呢?

#2


其它的都交叉编译了吗?楼主什么平台,为什么不选择 Qt,用MiniGUI的太少了

#3


有谁遇到此问题吗?

#4


我用的是jepg9,至于6b不知道,这个问题我也遇到了:  
CCLD     libjpeg.la
/usr/bin/ld: .libs/jaricom.o: Relocations in generic ELF (EM: 40)
/usr/bin/ld: .libs/jaricom.o: Relocations in generic ELF (EM: 40)
.libs/jaricom.o: could not read symbols: File in wrong format
collect2: ld returned 1 exit status
make[1]: *** [libjpeg.la] Error 1
make[1]: Leaving directory `/home/wangqi/jpeg-9'
make: *** [all] Error 2
解决办法是./configure 的时候要配置好:
./configure CC=arm-fsl-linux-gnueabi-gcc LD=arm-fsl-linux-gnueabi-ld --prefix=/home/wangqi/lib-jpeg/ --exec-prefix=/home/wangqi/lib-jpeg/ --enable-shared --enable-static --host=arm-fsl-linux-gnueabi
CC是编译器
LD要配置
--host最好设成CC和LD中除了-gcc和-ld的前面部分,如arm-fsl-linux-gnueabi,因为生产的makefile中就可以自动添加arm-fsl-linux-gnueabi-ramlib之类的,省去自己手头设置。
最后make的时候就不是用/usr/bin/ld了,就可以通过编译