第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

解決LNK4098:defaultlib'MSVCRT'與。沖突

解決LNK4098:defaultlib'MSVCRT'與。沖突

精慕HU 2019-09-19 09:04:02
這個(gè)警告:LINK : warning LNK4098: defaultlib 'MSVCRT' conflicts   with use of other libs; use /NODEFAULTLIB:library在Visual Studio中是一個(gè)相當(dāng)常見的警告。我想了解它的確切原因以及正確的方法(如果有的話)來處理它。這出現(xiàn)在一個(gè)編譯的調(diào)試版本中/MDd。該項(xiàng)目與windows之類的東西相關(guān)聯(lián),Version.dll并pdh.dll與之相關(guān)MSVCRT.dll。顯然,我沒有這些的調(diào)試版本,無法編譯它們。所以我添加/NODEFAULTLIB:MSVCRT到鏈接器命令行,它實(shí)際上刪除了警告。但這實(shí)際上做了什么?為什么有必要?
查看完整描述

3 回答

?
30秒到達(dá)戰(zhàn)場(chǎng)

TA貢獻(xiàn)1828條經(jīng)驗(yàn) 獲得超6個(gè)贊

vc \ lib中有4個(gè)版本的CRT鏈接庫:

  • libcmt.lib:發(fā)布版本的靜態(tài)CRT鏈接庫(/ MT)

  • libcmtd.lib:用于調(diào)試版本的靜態(tài)CRT鏈接庫(/ MTd)

  • msvcrt.lib:CRT版本DLL版本的導(dǎo)入庫(/ MD)

  • msvcrtd.lib:CRT調(diào)試DLL版本的導(dǎo)入庫(/ MDd)

查看鏈接器選項(xiàng),Project + Properties,Linker,Command Line。請(qǐng)注意這里沒有提到這些庫。鏈接器自動(dòng)確定編譯器使用了什么/ M開關(guān),以及哪個(gè).lib應(yīng)通過#pragma comment指令鏈接。有點(diǎn)重要的是,如果/ M選項(xiàng)與您鏈接的.lib之間存在不匹配,則會(huì)出現(xiàn)可怕的鏈接錯(cuò)誤并難以診斷運(yùn)行時(shí)錯(cuò)誤。

當(dāng)鏈接器被告知鏈接到msvcrt.lib  libcmt.lib 時(shí),您將看到引用的錯(cuò)誤消息。如果將使用/ MT編譯的代碼與使用/ MD鏈接的代碼鏈接,將會(huì)發(fā)生這種情況。CRT只能有一個(gè)版本。

/ NODEFAULTLIB告訴鏈接器忽略從/ MT編譯代碼生成的#pragma comment指令。這可能有效,盡管其他一些鏈接器錯(cuò)誤并不少見。像errno這樣的東西,它是靜態(tài)CRT版本中的extern int,但是對(duì)DLL版本中的函數(shù)進(jìn)行宏編輯。許多其他人喜歡這樣。

好吧,正確的方法修復(fù)此問題,找到您使用錯(cuò)誤的/ M選項(xiàng)編譯的鏈接的.obj或.lib文件。如果你沒有線索,那么你可以通過點(diǎn)擊.obj / .lib文件來找到它/“MT”

順便說一句:Windows可執(zhí)行文件(如version.dll)有自己的CRT版本來完成他們的工作。它位于c:\ windows \ system32,您無法可靠地將它用于您自己的程序,其CRT標(biāo)頭在任何地方都無法使用。程序使用的CRT DLL具有不同的名稱(如msvcrt90.dll)。


查看完整回答
反對(duì) 回復(fù) 2019-09-19
?
慕標(biāo)琳琳

TA貢獻(xiàn)1830條經(jīng)驗(yàn) 獲得超9個(gè)贊

來自Yochai Timmer的 IMO 這個(gè)鏈接非常好,相關(guān)但很難閱讀。我寫了一個(gè)總結(jié)。

Yochai,如果您讀過這篇文章,請(qǐng)參閱最后的說明。


對(duì)于原始帖子讀?。?a >警告LNK4098:defaultlib“LIBCD”與使用其他庫沖突

錯(cuò)誤

鏈接:警告LNK4098:defaultlib“LIBCD”與其他庫的使用沖突; 使用/ NODEFAULTLIB:庫

含義

系統(tǒng)的一部分被編譯為使用單線程標(biāo)準(zhǔn)(libc)庫與調(diào)試信息(libcd)靜態(tài)鏈接

而系統(tǒng)的另一部分被編譯為使用多線程標(biāo)準(zhǔn)庫而沒有調(diào)試信息,這些信息駐留在DLL中并使用動(dòng)態(tài)鏈接

如何解決

  • 忽略警告,畢竟它只是一個(gè)警告。但是,您的程序現(xiàn)在包含多個(gè)相同功能的實(shí)例。

  • 使用鏈接器選項(xiàng)/ NODEFAULTLIB:lib。這不是一個(gè)完整的解決方案,即使你可以讓你的程序以這種方式鏈接你忽略了一個(gè)警告標(biāo)志:代碼已經(jīng)針對(duì)不同的環(huán)境進(jìn)行了編譯,你的一些代碼可能被編譯為單線程模型,而其他代碼則是多線程。

  • [...]瀏覽所有庫并確保它們具有正確的鏈接設(shè)置

在后者中,正如原始帖子中提到的那樣,可能會(huì)出現(xiàn)兩個(gè)常見問題:

  • 您有第三方庫,其鏈接與您的應(yīng)用程序不同。

  • 您的代碼中嵌入了其他指令:通常這是MFC。如果系統(tǒng)中的任何模塊與MFC鏈接,則所有模塊必須名義上鏈接到相同版本的MFC。

對(duì)于這些情況,請(qǐng)確保您了解問題并在解決方案中做出決定。


查看完整回答
反對(duì) 回復(fù) 2019-09-19
  • 3 回答
  • 0 關(guān)注
  • 1066 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)