【发布时间】:2016-03-21 00:32:15
【问题描述】:
我有一个 Visual Studio 2012 C++ 项目。 我最近卸载了它并安装了 Visual Studio 2015 并升级了项目。 当我在构建项目时,出现如下所示的错误:
Error LNK2019 unresolved external symbol _memcmp referenced in function
此外,我的代码 memcmp 函数中的任何地方都没有使用过。
我使用了链接器详细功能,可以在输出文件中看到以下内容:
找到_memcmp
在 MyC++Project.obj 中引用
在 libcpmtd.lib(xstrcoll.obj) 中引用
加载的 libvcruntimed.lib(__memcmp_.obj)
这里有两个问题
1.即使我没有在我的代码中使用 memcmp,为什么我会收到链接器错误?
2.为什么memcmp被加载为__memcmp_.obj
我的项目中也有以下设置:
1.C++-->代码生成-->运行时库设置为/MTd
2.Linker-->忽略所有默认库设置为空
我已经尝试了所有的项目设置,但一切都是徒劳的。
我只对这个我没有使用过的 memcmp 函数有问题。
我使用过 mamcpy 和 memset 并且没有这些问题
【问题讨论】:
-
我只遇到了我没有使用过的 memcmp 函数的问题。我在我的代码中使用了 memcpy 和 memset,它们没有任何问题。
-
详细输出显示 xstrcoll.obj referenecs _memcmp,所以这可能是您第一个问题的答案。
-
您使用哪些第三方库?看起来像是外部 C / 名称修改问题。
-
不使用第三方库。
标签: c++ visual-studio-2015 linker-errors memcmp