交叉编译出错

EElleevveenn EElleevveenn 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
我先用本地编译器g++,编译成功,但是用交叉编译时却出错。
一、 本地编译
1、 Makefile文件编写
SYDemo:modulapi.o
g++ -g modulapi.o SYProtocol.a –o SYDemo
modulapi.o:modulapi.cpp SYProtocol.h
g++ -g –c modulapi.cpp –o modulapi.o
clean:
rm –f *.o SYDemo
2、 make编译成功
3、 ./SYDemo设备可以运行
二、 交叉编译
1、Makefile文件编写
SYDemo:modulapi.o
arm-linux-g++ -g modulapi.o SYProtocol.a –o SYDemo
modulapi.o:modulapi.cpp SYProtocol.h
arm-linux-g++ -g –c modulapi.cpp –o modulapi.o
clean:
rm –f *.o SYDemo
出错,结果如下:
2、改用单步编译
(1)编译modulapi.o文件
arm-linux-g++ -g –c modulapi.cpp –o modulapi.o
这一步没有出错
(2)编译SYDemo文件,出错,结果如下:
[root@localhost root]# arm-linux-g++ -g -c modulapi.cpp -o modulapi.o
[root@localhost root]# arm-linux-g++ -g modulapi.o SYProtocol.a -o SYDemo
/opt/EmbedSky/4.3.3/bin/../lib/gcc/arm-none-linux-gnueabi/4.3.3/../../../../arm-none-linux-gnueabi/bin/ld: SYProtocol.a(SYProtocol.o): Relocations in generic ELF (EM: 3)
/opt/EmbedSky/4.3.3/bin/../lib/gcc/arm-none-linux-gnueabi/4.3.3/../../../../arm-none-linux-gnueabi/bin/ld: SYProtocol.a(SYProtocol.o): Relocations in generic ELF (EM: 3)
/opt/EmbedSky/4.3.3/bin/../lib/gcc/arm-none-linux-gnueabi/4.3.3/../../../../arm-none-linux-gnueabi/bin/ld: SYProtocol.a(SYProtocol.o): Relocations in generic ELF (EM: 3)
/opt/EmbedSky/4.3.3/bin/../lib/gcc/arm-none-linux-gnueabi/4.3.3/../../../../arm-none-linux-gnueabi/bin/ld: SYProtocol.a(SYProtocol.o): Relocations in generic ELF (EM: 3)
/opt/EmbedSky/4.3.3/bin/../lib/gcc/arm-none-linux-gnueabi/4.3.3/../../../../arm-none-linux-gnueabi/bin/ld: SYProtocol.a(SYProtocol.o): Relocations in generic ELF (EM: 3)
/opt/EmbedSky/4.3.3/bin/../lib/gcc/arm-none-linux-gnueabi/4.3.3/../../../../arm-none-linux-gnueabi/bin/ld: SYProtocol.a(SYProtocol.o): Relocations in generic ELF (EM: 3)
/opt/EmbedSky/4.3.3/bin/../lib/gcc/arm-none-linux-gnueabi/4.3.3/../../../../arm-none-linux-gnueabi/bin/ld: SYProtocol.a(SYProtocol.o): Relocations in generic ELF (EM: 3)
/opt/EmbedSky/4.3.3/bin/../lib/gcc/arm-none-linux-gnueabi/4.3.3/../../../../arm-none-linux-gnueabi/bin/ld: SYProtocol.a(SYProtocol.o): Relocations in generic ELF (EM: 3)
SYProtocol.a: could not read symbols: File in wrong format
collect2: ld returned 1 exit status
请教出错原因
...全文

相关推荐

评论 5
收藏 已收藏
分享
返回顶部
EElleevveenn
Linux/Unix社区 18,828 成员 11,488 内容