LNK4098 defaultlib 'MSVCRT' conflicts with use of other libs; use /NODEFAULTLIB:library的解决方法

C++项目编译时遇到警告(warning)

LNK4098 defaultlib 'MSVCRT' conflicts with use of other libs; use /NODEFAULTLIB:library

 

原因

使用多线程调试dll(/MDd)模式时,msvcrtd.lib和具体使用的lib文件有冲突

 

解决方法(有3种)

1.C/C++ -> 代码生成(Code Generation) -> 运行时库(Runtime Library)

把“Multi-threaded Debug DLL (/MDd)”改为“Multi-threaded DLL (/MD)”

 

2.链接器(Linker) -> 输入(Input) -> 忽略指定库(Ignore Specific Default Libraries)

填入具体的库的文件名,例如这里是“MSVCRT.lib”
* 由于是2个文件冲突,所以既可以忽略MSVCRT.lib,也可以忽略你使用的lib,例如glfw3.lib

 

3.链接器(Linker) -> 命令行(Command Line) -> 附加选项(Additional Options)

填入追加的命令,例如这里是“/NODEFAULTLIB:"MSVCRT.lib"”

* 由于是2个文件冲突,所以既可以忽略MSVCRT.lib,也可以忽略你使用的lib,例如glfw3.lib

 

posted @ 2022-11-01 18:19  Clotho_Lee  阅读(682)  评论(0)    收藏  举报