我有一个带有静态和动态库的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),警告就会消失。
我觉得这里可能出现其他问题(即使链接器指向一个非常具体的位置),因为我发现此特定对象文件没有谷歌引用此特定错误,这很奇怪......
有什么想法吗?
修改
/VERBOSE
的link.exe,我的可执行项目中的X.obj(并且只有该对象)引用了unknwn_i.obj,这就是为什么它被"拉入" ;。该项目根本不使用/GL
或/LTCG
(检查项目属性,项目中每个cpp文件的属性,并且没有"独立的"属性表在解决方案中)