链接器警告:uuid.lib(unknwn_i.obj):用/ GL编译的MSIL .netmodule或模块;重新启动与/ LTCG的链接

时间:2016-01-18 15:59:36

标签: windows visual-studio linker visual-studio-2015

我有一个带有静态和动态库的Visual C ++解决方案,以及一个使用这些库的可执行文件。我目前正在从Visual Studio 2010升级到Visual Studio 2015,我还将项目使用的SDK版本升级到10.0.10586.0(Windows 10)。

除了一个链接器警告外,所有内容都正确编译和链接:

uuid.lib(unknwn_i.obj) : MSIL .netmodule or module compiled with /GL found; restarting link with /LTCG; add /LTCG to the link command line to improve linker performance

uuid.lib是Windows SDK的一部分。它可能已使用/GL进行编译,但这是否意味着每个链接到此库的可执行文件必须使用/GL?这将是非常有限的。顺便说一句,如果我切换到Windows SDK版本8.1(但仍使用Visual Studio 2015),警告就会消失。

我觉得这里可能出现其他问题(即使链接器指向一个非常具体的位置),因为我发现此特定对象文件没有谷歌引用此特定错误,这很奇怪......

有什么想法吗?

修改

  • 警告出现在Debug和Release版本中
  • 根据带有/VERBOSE的link.exe,我的可执行项目中的X.obj(并且只有该对象)引用了unknwn_i.obj,这就是为什么它被"拉入" ;。该项目根本不使用/GL/LTCG(检查项目属性,项目中每个cpp文件的属性,并且没有"独立的"属性表在解决方案中)
  • 我还尝试从其链接列表中删除链接到exe项目的所有库。当只链接了默认值(kernel32.lib,uuid.lib等)时,警告仍然存在(除了大量未解决的引用,但那是因为我故意删除了库)。因此,导致此问题的不是外部库。

0 个答案:

没有答案