LIBCD.lib(wincrt0.obj) : error LNK2001: unresolved external symbol
最近經(jīng)常被VC的錯(cuò)誤提示所困擾,總結(jié)了一下,共同學(xué)習(xí).
學(xué)習(xí)VC++時(shí)經(jīng)常會(huì)遇到鏈接錯(cuò)誤LNK2001,而一般說(shuō)來(lái)發(fā)生連接錯(cuò)誤時(shí),編譯都已通過(guò)。產(chǎn)生連接錯(cuò)誤的原因非常多,尤其LNK2001錯(cuò)誤,常常使人不明其所以然。產(chǎn)生LNK2001錯(cuò)誤的原因:一個(gè)是由于編碼錯(cuò)誤導(dǎo)致的LNK2001,在這不想詳細(xì)說(shuō).另一個(gè)由于編譯和鏈接的設(shè)置而造成的LNK2001.最經(jīng)常發(fā)生的是:"LIBCD.lib(wincrt0.obj) : error LNK2001: unresolved external symbol _WinMain@16",產(chǎn)生這個(gè)錯(cuò)誤的原因是沒(méi)有為wWinMainCRTStartup設(shè)定程序入口. 認(rèn)識(shí)這個(gè)錯(cuò)誤首先在新建工程時(shí)要分清Win32 Application和Win32 Console Application.它們都是工作在32位Windows環(huán)境的程序.其中Win32 Application 就是普通的常見(jiàn)的窗口應(yīng)用程序,當(dāng)然有的界面做得比較個(gè)性化,比如圓形的、不規(guī)則形狀的.它們都是所謂的GUI(Graphics User Interface圖形用戶接口),我們可以通過(guò)鼠標(biāo)點(diǎn)擊來(lái)完成控制。而Win32 Console Application(win32控制臺(tái)應(yīng)用程序)往往是像MS-DOS窗口(XP中叫命令提示符)的樣子出現(xiàn),我們得用鍵盤(pán)輸入各種命令來(lái)使用它,
或者叫CUI(Character User Interface字符用戶接口)。 遇到如下鏈接錯(cuò)誤: Linking... /subsystem:windows LIBCD.lib(wincrt0.obj) : error LNK2001: unresolved external symbol _WinMain@16 Debug/TestWin.exe : fatal error LNK1120: 1 unresolved externals Error executing link.exe. 解決方法是:將project-settings-link的project options里的 /subsystem:windows 改成 /subsystem:console 因?yàn)閃in32 Application的入口函數(shù)為WinMain
Win32 Console Application的入口函數(shù)是main 也就是說(shuō),如果你編寫(xiě)傳統(tǒng)的C程序,必須建立Win32 Console程序,但VC里面默認(rèn)的是Win32 Application,于是上面提及的鏈接錯(cuò)誤就就經(jīng)常出現(xiàn)了
而Win32 Application和Win32 Console的區(qū)別就在于VC里鏈接參數(shù)不同 另外幾種錯(cuò)誤:
error LNK2001錯(cuò)誤
2007年04月15日 星期日 下午 12:54
|
|
來(lái)自: luckystargq > 《我的圖書(shū)館》