warning LNK4098: defaultlib LIBCMT conflicts with use of other libs; use / NODEFAULTLIB:library 在同一個(gè)項(xiàng)目中,所有的源文件必須鏈接相同的 C 運(yùn)行時(shí)庫。如果某一文件用了 Multithreaded DLL 版本,而其他文件用了 Single-Threaded 或者 Multithread
warning LNK4098: defaultlib "LIBCMT" conflicts with use of other libs; use /NODEFAULTLIB:library
在同一個(gè)項(xiàng)目中,所有的源文件必須鏈接相同的C運(yùn)行時(shí)庫。如果某一文件用了Multithreaded DLL版本,而其他文件用了Single-Threaded或者M(jìn)ultithreaded版本的庫,也就是說用了不同的庫,就會(huì)導(dǎo)致這個(gè)警告的出現(xiàn)。
原因找到了。那么解決方法,總之就是將兩個(gè)項(xiàng)目的運(yùn)行時(shí)庫統(tǒng)一。
簡(jiǎn)單的方式就是將項(xiàng)目的動(dòng)態(tài)庫修改為使用Multithreaded DLL 版本的C運(yùn)行時(shí)庫即可。
某些情況下你的項(xiàng)目可能不能改變當(dāng)前的運(yùn)行時(shí)庫,VC中的C運(yùn)行時(shí)庫一共有6種,想了解更多信息可以參閱我先前翻譯的文章。
Single-threaded (libc.lib) libcmt.lib, msvcrt.lib, libcd.lib, libcmtd.lib, msvcrtd.lib
Multithreaded (libcmt.lib) libc.lib, msvcrt.lib, libcd.lib, libcmtd.lib, msvcrtd.lib
Multithreaded using DLL (msvcrt.lib) libc.lib, libcmt.lib, libcd.lib, libcmtd.lib, msvcrtd.lib
Debug Single-threaded (libcd.lib) libc.lib, libcmt.lib, msvcrt.lib, libcmtd.lib, msvcrtd.lib
Debug Multithreaded (libcmtd.lib) libc.lib, libcmt.lib, msvcrt.lib, libcd.lib, msvcrtd.lib
Debug Multithreaded using DLL (msvcrtd.lib) libc.lib, libcmt.lib, msvcrt.lib, libcd.lib, libcmtd.lib
例如編譯Release版本的單線程的工程,在linker的命令行加入如下的參數(shù):
/NODEFAULTLIB:libcmt.lib /NODEFAULTLIB:msvcrt.lib /NODEFAULTLIB:libcd.lib /NODEFAULTLIB:libcmtd.lib /NODEFAULTLIB:msvcrtd.lib
由于這個(gè)項(xiàng)目是添加htmlhelp.lib后而得到的warning,所以應(yīng)該做如下更改,選擇Project -> Setting,出現(xiàn)Project Setting對(duì)話框,單擊LinkProject Options中添加如下即可。
/NODEFAULTLIB:libc.lib /NODEFAULTLIB:libcmt.lib /NODEFAULTLIB:msvcrt.lib /NODEFAULTLIB:libcd.lib /NODEFAULTLIB:libcmtd.lib
jsp 攔截器寫法,最大的問題是把注入搞沒了,我勒個(gè)去,暫時(shí)無解
聲明:本網(wǎng)頁內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問題請(qǐng)及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com