LNK4098 - 'MSVCRT' 使用 GLFW 发生冲突
LNK4098 - 'MSVCRT' conflict using GLFW
我正在使用 OpenGL 开发一个项目。但是,我在构建项目时收到链接器警告 "Resolving LNK4098: defaultlib 'MSVCRT' conflicts with ..."。
我已经阅读了很多关于此警告的内容,并发现我的 GLEW 正在使用 Dependency Walker MSVCRT.dll(我认为这应该是这样,因为那是 "default lib").但是,当我检查 GLFW3.DLL 时,它说它使用了 MSVCR120.DLL,我怀疑这是导致我的应用程序发生冲突的错误 dll。
所以我尝试使用网站上的源代码从头开始构建 GLFW。我在项目中编辑了以下设置:
- 目标扩展 -> 首先构建 .lib,然后构建 .dll
- 平台工具集 -> v120
- 配置类型 -> 首先构建 .lib,然后构建 .dll
然后在C/C++下->代码生成->运行时库Iselect多线程DLL(/MD)
在我编译之前,我把所有东西都放在 "release"。
当我重建一切并再次检查时,它仍然说它正在使用 MSVCR120.dll 并且它仍然导致众所周知的 LNK4098 冲突。
我在这里做错了什么?我该如何解决冲突?提前致谢!
您需要对库和您的应用程序使用相同的 "Runtime Library" 设置。
为避免出现问题,您应该准备两个版本的库:一个用于调试,一个用于发布。
我正在使用 OpenGL 开发一个项目。但是,我在构建项目时收到链接器警告 "Resolving LNK4098: defaultlib 'MSVCRT' conflicts with ..."。
我已经阅读了很多关于此警告的内容,并发现我的 GLEW 正在使用 Dependency Walker MSVCRT.dll(我认为这应该是这样,因为那是 "default lib").但是,当我检查 GLFW3.DLL 时,它说它使用了 MSVCR120.DLL,我怀疑这是导致我的应用程序发生冲突的错误 dll。
所以我尝试使用网站上的源代码从头开始构建 GLFW。我在项目中编辑了以下设置:
- 目标扩展 -> 首先构建 .lib,然后构建 .dll
- 平台工具集 -> v120
- 配置类型 -> 首先构建 .lib,然后构建 .dll
然后在C/C++下->代码生成->运行时库Iselect多线程DLL(/MD)
在我编译之前,我把所有东西都放在 "release"。
当我重建一切并再次检查时,它仍然说它正在使用 MSVCR120.dll 并且它仍然导致众所周知的 LNK4098 冲突。 我在这里做错了什么?我该如何解决冲突?提前致谢!
您需要对库和您的应用程序使用相同的 "Runtime Library" 设置。
为避免出现问题,您应该准备两个版本的库:一个用于调试,一个用于发布。