首页 > 解决方案 > VS 2017 Community 出现链接器错误,但 Professional 没有

问题描述

我们面临一个奇怪的问题,我已经没有解决问题的想法了。问题是,在一些运行 Visual Studio 2017 Community 的机器上,我们收到报告称我们的项目(基于 CMake)出现如下链接器错误:

17>------ Build started: Project: ndt, Configuration: RelWithDebInfo x64 ------
17>   Creating Library E:/NDT_3_0/19_Sept18/qualnet/RelWithDebInfo/exata_so.lib and object E:/NDT_3_0/19_Sept18/qualnet/RelWithDebInfo/exata_so.exp
17>ndt-main-windows-x64-vc14.obj : error LNK2019: unresolved external symbol edKJPOs664VT referenced in function "void __cdecl CheckLibraryLicenses(struct NodeInput*,...)
17>ndt-main-windows-x64-vc14.obj : error LNK2019: unresolved external symbol zzPIPSGJWa referenced in function main
...
17>E:\NDT_3_0\19_sep18\qualnet\bin\exata_so.exe : fatal error LNK1120: 17 unresolved externals

(抱歉,如果有错别字:出于某种原因,他们向我们发送了文本的屏幕截图,而不仅仅是文本的复制和粘贴,所以我正在转录。但是,我遗漏的部分没有提及试图打开lmgr.lib定义这些符号的错误。)

奇怪的是,当我们对他们正在使用的同一个 Bitbucket 存储库进行全新克隆并遵循相同的构建说明时,我们无法在此处重现这些错误。我能说的唯一区别是我们的机器运行的是 Visual Studio 2017 Professional。(虽然我当然不确定这是否真的是行为差异的原因。)

到目前为止,我们已经检查过:

我想知道那里是否有人可能对为什么某些机器可能无法找到符号lmgr.lib而我们的机器在完成链接阶段没有问题有任何想法。

(可能相关:lmgr.lib包含 FlexNet Publisher 许可库,其中两个符号lmgr.lib都已ndt-main-windows-x64-vc14.obj被 Flexera 的lmstrip工具混淆。)

标签: c++linkervisual-studio-2017

解决方案


事实证明,当我们要求他们将他们的 Visual Studio 2017 社区安装升级到最新的服务包版本时,链接器错误就消失了。


推荐阅读