gpt4 book ai didi

c++ - 使用 Visual Studio 2010 : LNK4098 and LNK2005 运行 gtest

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:28:37 25 4
gpt4 key购买 nike

我已经按照描述安装了 google test here .但是当我尝试对我当前的项目使用测试时,我收到 2 个 LNK4098 警告:

defaultlib 'MSVCRTD' 与其他库的使用冲突;使用/NODEFAULTLIB:库

“LIBCMTD”也是如此,还有一堆 LNK2005 错误。但是当我实际上忽略这两个默认库时,它并没有帮助:我得到了更多的错误。有什么问题?

最佳答案

您必须确保 googletest 和您的项目是使用相同版本的 C 运行时库 (CRT) 构建的。谷歌测试(目前v1.6.0)提供2个Visual Studio解决方案文件; gtest-1.6.0\msvc\gtest.sln 使用静态版本,gtest-1.6.0\msvc\gtest-md.sln 使用动态(dll ) 版本。默认情况下,通过 Visual Studio 创建的项目使用 dll 版本。

您需要决定您的项目是使用静态版本还是动态版本的 CRT。

要将您的项目设置为使用静态版本,请转到 Project->Properties 并在窗口的左上角选择 Configuration: Debug。然后在同一窗口中选择 Configuration Properties -> C/C++ -> Code GenerationRuntime Library 的选项应该是Multi-threaded Debug (/MTd)

然后您需要确保链接到适当版本的 gtest,因此选择 Configuration Properties -> Linker -> Input .通过提供 gtest 库的调试版本的完整路径来编辑 Additional Dependencies 字段(例如 C:\gtest-1.6.0\msvc\gtest\Debug\gtestd.lib).

对 Release Configuration 再次执行相同操作,但将 Runtime Library 选项设置为 Multi-threaded (/MT) 并提供 Release 版本的完整路径gtest 库(例如 C:\gtest-1.6.0\msvc\gtest\Release\gtest.lib)。

如果您决定要使用 CRT 的 dll 版本,请选择 Multi-threaded Debug DLL (/MDd)Multi-threaded DLL (/MD) ,并链接到将位于 gtest-1.6.0\msvc\gtest-md\... 而不是 gtest-1.6.0\msvc\gtest\中的 gtest-md 库...

关于c++ - 使用 Visual Studio 2010 : LNK4098 and LNK2005 运行 gtest,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9928684/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com