linux 编译的时候,如何与.a静态库做链接生成.elf文件?

teneyaner 2012-03-21 03:20:24
如何在顶层Makefile(其实不应该放到顶层Makefile里,但现在只想试一下,先放在顶层吧)中将静态库加入到链接里面,生成elf文件?
...全文
443 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
CaspianSea 2012-03-25
  • 打赏
  • 举报
回复
你用 gcc 去链接 arm-gcc 生成的 静态库?
这个肯定不行吧, 要使用相同的工具链。为什么你不用 arm-gcc 呢?
teneyaner 2012-03-22
  • 打赏
  • 举报
回复
最后链接静态库倒是链接进来了,出了个问题: undefined reference to `__ARM_switch8'
才意识到,他的静态库应该是armcc编译链接生成的,我们的工具用的是gcc,悲剧啊,好不容易把他的.s文件从armcc格式改到gcc格式,高手们有没有办法,怎么才让我的gcc也能用到该静态库啊?
teneyaner 2012-03-22
  • 打赏
  • 举报
回复
如果静态库是armcc编译生成的,我怎么将该.a库,用gcc链接到binary中来呢?
teneyaner 2012-03-22
  • 打赏
  • 举报
回复
谢谢楼上关注,貌似是我用了libc里面的函数,但是我们的项目里面是不包含这个库,所有函数自己实现的。需要改成我们自己实现的函数才行。我先debug了。
Arnold9009 2012-03-22
  • 打赏
  • 举报
回复
错误提示是什么

项目里应该有连接其他的库吧,参考一下其他库的链接是怎么写的
CaspianSea 2012-03-22
  • 打赏
  • 举报
回复
出什么样的错误?贴出来看看
teneyaner 2012-03-21
  • 打赏
  • 举报
回复
顶层makefile中的final_target主要依赖的两个target:final_target-init、final_target-main。其中final_target-main依赖与driver、testcase等,我认为是应该在生成final_target-main镜像的时候把我需要是静态库-L链接进去,但是这样会出错,期待高手解释。
teneyaner 2012-03-21
  • 打赏
  • 举报
回复
补充:静态库移植别人的已经编译好的点a文件,里面有我需要调用的API,我不需要编译,但是在代码树段的Kbuild中是无法对静态库做链接的。

23,118

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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