首页 > 编程语言 >LNK4098 defaultlib 'MSVCRT' conflicts with use of other libs; use /NODEFAULTLIB:library的解决

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

时间:2022-11-01 18:22:32浏览次数:56  
标签:LNK4098 use lib 忽略 NODEFAULTLIB MSVCRT

C++项目编译时遇到警告

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

 

标签:LNK4098,use,lib,忽略,NODEFAULTLIB,MSVCRT
From: https://www.cnblogs.com/live41/p/16848720.html

相关文章