同一个C源代码文件,用交叉编译工具编译出来的二进制文件为何比用GCC编译出来的二进制文件大很多呢?原因在哪里请指教

lpwnd 2005-11-03 02:06:35
大近10倍。

谢谢
...全文
377 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
bekars 2005-11-10
  • 打赏
  • 举报
回复
肯定一个是静态链接一个是动态链接了

你的交叉编译环境有可能是用静态链接编译的,为了保证程序可以不依赖库文件运行,你可以用ldd命令看看有没有链接库文件。
deutsch 2005-11-10
  • 打赏
  • 举报
回复
你strip一下你的文件看看,是不是里面加了很多的symbol
peterchen-easyli 2005-11-06
  • 打赏
  • 举报
回复
也许一个是静态链接
一个是动态链接
tb01412 2005-11-03
  • 打赏
  • 举报
回复
我说一下我的观点:
如果你的二进制文件有十倍之差,那么你得看看你的MAKEFILE文件了,主要是看一下在执行不同的编译时,有什么差异!!导致这么大差距的原因一般都是链连时的原因,主要看一下后缀名为lds之类的文件,前提是你要对GCC的链接比较熟悉!!!链接成BIN文件时,如果你把代码段定位在0x0开始,而又把数据段定位在0x20000000开始(如果你又未使用重定位的话,在后缀名为lds的文件中有带有AT字母的那一行,如果未使用重映射的话,当然就没有了),那么你编译出来的程序就会有几百M大小

如果你的二进制文件只有少量差异,那么个中原因我就不用解释了吧?!!!
Bruce_Song 2005-11-03
  • 打赏
  • 举报
回复
不知道是不是因为该C文件中用到的东西交叉编译工具觉得需要加入一些本来是默认系统的一些资源的缘故。
猜的,同学习。
wfwater 2005-11-03
  • 打赏
  • 举报
回复
大这么多?
看看你的make文件

4,441

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 内核源代码研究区
社区管理员
  • 内核源代码研究区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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