【问题标题】:Linker optizimation链接器优化
【发布时间】:2011-10-25 18:24:53
【问题描述】:

我的链接器(来自 Microsoft Visual C++ 2005 的link.exe)可能会尝试优化其工作,并且不会将*.lib 文件包含的所有对象静态链接到最终的可执行文件中,这对我来说是必要的,因为接下来的分析任务.如何强制 link.exe 将所有符号(甚至源代码中未引用的符号)包含到最终可执行文件中?

所以问题是我有一个库文件mylib.lib,其中包含foo.objbar.objqux.obj

我的源代码文件引用了来自foo.obj 的符号。

当我将源代码与库文件mylib.lib 静态链接时,它只链接到foo.obj,没有其他符号加入到最终的可执行文件中,而我需要它们(以便它们与进程一起加载到内存中) )。

我尝试了很多解决方案,都没有成功。是优化吗?我不想要。

【问题讨论】:

    标签: visual-c++ linker dynamic-linking static-linking


    【解决方案1】:

    在某种程度上,这就是链接器的工作方式——它们会挑选出那些包含符号的对象模块,这些符号被库或它应该构建的可执行文件引用并忽略其余部分。这并不是真正的优化,它们应该是这样工作的。

    确保附加目标文件链接到可执行文件的最简单方法是引用其中的符号。只需确保您关闭了“功能级链接”,因为这将抵消引用符号的效果。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-12-07
      • 1970-01-01
      • 1970-01-01
      • 2011-10-26
      • 2015-11-20
      • 2015-02-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多