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 @   Clotho_Lee  阅读(546)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
历史上的今天:
2021-11-01 HBase执行关闭命令等待时间过长的解决方法
2021-11-01 HBase的安装与部署
点击右上角即可分享
微信分享提示