【发布时间】:2018-08-27 09:19:36
【问题描述】:
使用 Visual Studio 社区 2017
我有 4 个项目:
- 使用 GLFW 和耦合其他库的静态库项目
- ProjectA 使用该库,编译良好li>
- ProjectB 也使用该库,编译良好li>
- 我最近创建并使用该库的 ProjectC 无法编译
ProjectC 与 ProjectB 和 ProjectA 具有相同的属性,应该没有什么不同吧?
但不知何故,我在编译 ProjectC 时遇到了这些错误:
glfw3.lib(context.obj):错误 LNK2001:未解析的外部符号 __imp___stdio_common_vsscanf
audio.lib(au.obj):错误 LNK2001:未解析的外部符号 __imp__stricmp
我尝试从他们的源代码构建 GLFW 和音频库并将项目替换为新建的,没有效果。
【问题讨论】:
-
缺少的函数来自 Microsoft C 运行时库。检查 ProjectC 的链接器设置。仔细检查您是否在所有项目上使用相同的共享/静态运行时支持设置进行构建。
-
我仔细检查了所有内容,我检查了 .vcxproj 文件的差异,一切都相同(项目 GUID 除外)
-
好吧,这很奇怪,我做了一个新的解决方案,做了一个新的项目,做了所有的设置,得到了错误等等。我将 ProjectB 复制到解决方案中并添加它,编译它没有任何错误。然后我把ProjectC中的源文件和头文件拿到ProjectB中,包含在ProjectB中,排除了其他的原始文件,错误!
标签: c++ visual-studio glfw lnk2001