是否可以从COFF库文件(.lib)中剥离调试信息?

时间:2009-06-17 19:39:38

标签: c++ visual-studio linker

我正在链接许多第三方.lib文件,并且在链接时收到大量LNK4099警告。似乎无法抑制此警告消息,因此我相信如果从.lib文件中删除所有调试信息,则不会显示警告。有没有办法删除调试信息?这些是我没有源代码的库。

我正在使用VS2005 C ++(当然是在Windows上)。

3 个答案:

答案 0 :(得分:1)

我认为这是不可能的,至少不使用传统工具。我建议您联系供应商并请求他们在没有调试信息的情况下重建.lib文件。

答案 1 :(得分:0)

COFF格式 - 无论如何,在Unix上都可以很好地组织起来。其中有很多部分。还有一个工具mcs用于“操纵评论部分”,可用于删除材料。该工具可在Solaris上用于ELF(它是COFF的扩展),可能在其他地方。

这可能意味着您可以找到该程序并在MS目标文件上使用它。

另一方面,通过删除调试信息似乎不太可能解决投诉;调试信息不​​应该影响程序的运行(或链接)。也就是说,通过谷歌“microsoft lnk4009”发现的信息是无定论的;出现两个条目,但最终都显示“LNK4099”而不是“LNK4009”消息。

答案 2 :(得分:0)

我猜你已经从MSDN上阅读了这个页面:

MSDN: Linker Tools Warning LNK4099

Link表示“...如果您没有链接对象的.pdb文件,请删除/ DEBUG链接器选项。”