编译静态链接库时有无办法固定偏移

inshua 2009-01-06 05:48:05
一个单片机程序,用到了一个 lib 文件,这个 lib 里有不少函数,每次编译时,这些函数的偏移量都会变,请问有没有办法让它参考上一次的地址不要变
...全文
95 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
complier199 2009-01-07
  • 打赏
  • 举报
回复
帮顶
noenoughmemory 2009-01-07
  • 打赏
  • 举报
回复
帮顶
inshua 2009-01-07
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 hqin6 的回复:]
汗~~~每次编译?那不就是重新生成么?

这可悬了~!编译器上哪儿知道你上次的地址!
再说了,就算你知道了,你想怎么办?

对于静态库,是编译器决定去插入到哪儿的@!
[/Quote]

对,就是要它记着上次是怎么布局的,下次链接的时候照样固定在这个位置
Proteas 2009-01-07
  • 打赏
  • 举报
回复
对静态库不是很了解.
  • 打赏
  • 举报
回复
你看看你用的编译器有没有相关的选项吧
ckt 2009-01-06
  • 打赏
  • 举报
回复
没弄过单片机程序

不过如果你需求到这样的程度,
是否是你自己在问题的考虑上已经偏离不少了.
agaric 2009-01-06
  • 打赏
  • 举报
回复
库文件本来就是可以重新定向的,你为什么要固定他们的地址呢?

也许你可以指定某些符号的位置,但是每个都由你自己指定,那不是太累了。
  • 打赏
  • 举报
回复
一个单片机程序,用到了一个 lib 文件,这个 lib 里有不少函数,每次编译时,这些函数的偏移量都会变,请问有没有办法让它参考上一次的地址不要变

为何要这么做呢?
星羽 2009-01-06
  • 打赏
  • 举报
回复
照理说你如果没对程序跟改过,同一个编译器在不同时刻编译生成的exe应该不会相差很大

具体要看编译器实现了
xiaoyisnail 2009-01-06
  • 打赏
  • 举报
回复
这种需要好诡异啊,不知道有没有编译链接选项可以做到
帅得不敢出门 2009-01-06
  • 打赏
  • 举报
回复
貌似都没有介绍c/c++编译器实现的书
很多问题只能是看汇编猜。
keven1868 2009-01-06
  • 打赏
  • 举报
回复
调用链接库接口函数是采用重定向技术的,原因就是不能确定链接库会被加载到可执行程序地址空间的什么位置
太乙 2009-01-06
  • 打赏
  • 举报
回复
汗~~~每次编译?那不就是重新生成么?

这可悬了~!编译器上哪儿知道你上次的地址!
再说了,就算你知道了,你想怎么办?

对于静态库,是编译器决定去插入到哪儿的@!

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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