0

我正在使用 OpenGL 开发一个项目。但是,当我构建我的项目时,我有链接器警告“正在解决 LNK4098:defaultlib 'MSVCRT' 与...冲突”。

我一直在阅读有关此警告的很多内容,并使用 Dependency Walker 发现我的 GLEW 正在使用 MSVCRT.dll(我认为这就是它应该的样子,因为那是“默认库”)。但是,当我检查 GLFW3.DLL 时,它说它使用 MSVCR120.DLL,我怀疑是错误的 dll 导致我的应用程序发生冲突。

所以我尝试使用网站上的源代码从头开始构建 GLFW。我在项目中编辑了以下设置:

  • 目标扩展 -> 首先我构建 .lib,然后是 .dll
  • 平台工具集 -> v120
  • 配置类型 -> 首先我构建 .lib,然后是 .dll

然后在 C/C++ -> Code Generation -> Runtime Library 我选择 Multi-threaded DLL (/MD)

在编译之前,我将所有内容都放在“发布”上。

当我重建所有内容并再次检查时,它仍然说它正在使用 MSVCR120.dll 并且它仍然会导致众所周知的 LNK4098 冲突。我在这里做错了什么?我该如何解决冲突?提前致谢!

4

1 回答 1

2

您需要为库和您的应用程序使用相同的“运行时库”设置。

为避免出现问题,您应该准备两个版本的库:一个用于调试,一个用于发布。

于 2016-03-02T13:31:12.117 回答