交叉编译出错

EElleevveenn 2010-06-15 11:01:11
我先用本地编译器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
请教出错原因
...全文
168 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
louyong0571 2010-06-21
  • 打赏
  • 举报
回复
同意一楼,库可能要单独编译下吧
  • 打赏
  • 举报
回复
静态库格式可能不对,要同上面的一样!
Setarcos 2010-06-15
  • 打赏
  • 举报
回复
1楼正解,.a 文件也要交叉编译
fensnote 2010-06-15
  • 打赏
  • 举报
回复
感觉你的编译器没有安装好
帅得不敢出门 2010-06-15
  • 打赏
  • 举报
回复
SYProtocol.a 是用什么编译出来的 可能你要用当前的交叉工具重新编译下

18,829

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 专题技术讨论区
社区管理员
  • 专题技术讨论区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧