我刚刚继承了一个已有10年历史的项目的维护,包括将其从VS2005迁移到VS2015。我到处都是,但是当我链接时出现此错误:
错误LNK2019:无法解析的外部符号__imp__MessageBoxA @ 16
快速搜索发现这需要user32.lib。当我转到properties-> linker-> Additional Dependencies时,我在继承的值下看到该库liste,但是它仍然没有链接。当我明确添加硬编码的路径和文件名(C:\ Program Files(x86)\ Windows Kits \ 8.1 \ Lib \ winv6.3 \ um \ x86 \ user32.lib)作为另一个依赖项时,它确实可以成功链接...我猜这没关系,但如果没有其他问题,我要依靠那个特定的安装位置是很丑陋的(您知道软件开发人员将决定将东西粘贴在奇怪的地方)...任何人都对为什么视觉效果有任何猜测工作室不是一开始就找到图书馆,而是如何以正确的方式对其进行修复?
答案 0 :(得分:1)
在项目级别上获取对lib文件的依赖,然后add your paths to your properties page。
答案 1 :(得分:1)
Windows Kits\8.1
告诉您您已安装Windows 8.1 SDK。到目前为止,已经有了Windows 10 SDK,但这对您可能并不重要-user32.lib早就存在了。
这里的问题似乎是当您安装了8.1 SDK时,Visual Studio仍不知道它。 IIRC,它在VS2015安装程序中,因此您可以重新运行它并在此处重新选择SDK。 (或者选择另一个SDK-无论如何,您可能都将SDK限制为Win7)