一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

LIBCD.lib(wincrt0.obj) : error LNK2001...

 luckystargq 2008-12-01
 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
在創(chuàng)建MFC項(xiàng)目時(shí), 不使用MFC AppWizard向?qū)? 如果沒(méi)有設(shè)置好項(xiàng)目參數(shù), 就會(huì)在編譯時(shí)產(chǎn)生很多連接錯(cuò)誤, 如error LNK2001錯(cuò)誤, 典型的錯(cuò)誤提示有:
libcmtd.lib(crt0.obj) : error LNK2001: unresolved external symbol _main
LIBCD.lib(wincrt0.obj) : error LNK2001: unresolved external symbol _WinMain@16
msvcrtd.lib(crtexew.obj) : error LNK2001: unresolved external symbol _WinMain@16
nafxcwd.lib(thrdcore.obj) : error LNK2001: unresolved external symbol __beginthreadex
nafxcwd.lib(thrdcore.obj) : error LNK2001: unresolved external symbol __endthreadex
下面介紹解決的方法:
1. Windows子系統(tǒng)設(shè)置錯(cuò)誤, 提示:
libcmtd.lib(crt0.obj) : error LNK2001: unresolved external symbol _main
Windows項(xiàng)目要使用Windows子系統(tǒng), 而不是Console, 可以這樣設(shè)置:
[Project] --> [Settings] --> 選擇"Link"屬性頁(yè),
在Project Options中將/subsystem:console改成/subsystem:windows
2. Console子系統(tǒng)設(shè)置錯(cuò)誤, 提示:
LIBCD.lib(wincrt0.obj) : error LNK2001: unresolved external symbol _WinMain@16
控制臺(tái)項(xiàng)目要使用Console子系統(tǒng), 而不是Windows, 設(shè)置:
[Project] --> [Settings] --> 選擇"Link"屬性頁(yè),
在Project Options中將/subsystem:windows改成/subsystem:console
3. 程序入口設(shè)置錯(cuò)誤, 提示:
msvcrtd.lib(crtexew.obj) : error LNK2001: unresolved external symbol _WinMain@16
通常, MFC項(xiàng)目的程序入口函數(shù)是WinMain, 如果編譯項(xiàng)目的Unicode版本, 程序入口必須改為wWinMainCRTStartup, 所以需要重新設(shè)置程序入口:
[Project] --> [Settings] --> 選擇"C/C++"屬性頁(yè),
在Category中選擇Output,
再在Entry-point symbol中填入wWinMainCRTStartup, 即可
4. 線程運(yùn)行時(shí)庫(kù)設(shè)置錯(cuò)誤, 提示:
nafxcwd.lib(thrdcore.obj) : error LNK2001: unresolved external symbol __beginthreadex
nafxcwd.lib(thrdcore.obj) : error LNK2001: unresolved external symbol __endthreadex
這是因?yàn)镸FC要使用多線程時(shí)庫(kù), 需要更改設(shè)置:
[Project] --> [Settings] --> 選擇"C/C++"屬性頁(yè),
在Category中選擇Code Generation,
再在Use run-time library中選擇Debug Multithreaded或者multithreaded
其中,
Single-Threaded                  單線程靜態(tài)鏈接庫(kù)(release版本)
Multithreaded                    多線程靜態(tài)鏈接庫(kù)(release版本)
multithreaded DLL                多線程動(dòng)態(tài)鏈接庫(kù)(release版本)
Debug Single-Threaded            單線程靜態(tài)鏈接庫(kù)(debug版本)
Debug Multithreaded              多線程靜態(tài)鏈接庫(kù)(debug版本)
Debug Multithreaded DLL          多線程動(dòng)態(tài)鏈接庫(kù)(debug版本)
單線程: 不需要多線程調(diào)用時(shí), 多用在DOS環(huán)境下
多線程: 可以并發(fā)運(yùn)行
靜態(tài)庫(kù): 直接將庫(kù)與程序Link, 可以脫離MFC庫(kù)運(yùn)行
動(dòng)態(tài)庫(kù): 需要相應(yīng)的DLL動(dòng)態(tài)庫(kù), 程序才能運(yùn)行
release版本: 正式發(fā)布時(shí)使用
debug版本: 調(diào)試階段使用

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買(mǎi)等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類(lèi)似文章 更多

    在线视频三区日本精品| 国产成人午夜av一区二区| 性欧美唯美尤物另类视频| 色婷婷日本视频在线观看| 人妻巨大乳一二三区麻豆| 69老司机精品视频在线观看| 亚洲国产一区精品一区二区三区色| 欧美日韩有码一二三区| 精品女同在线一区二区| 日本免费一本一二区三区| 欧美成人黄色一级视频| 日韩中文无线码在线视频| 亚洲欧美中文字幕精品| 国产亚洲欧美自拍中文自拍| 日韩少妇人妻中文字幕| 免费久久一级欧美特大黄孕妇| 日本高清二区视频久二区| 亚洲欧美日韩精品永久| 欧美精品一区二区水蜜桃| 欧美国产日产综合精品| 欧美韩国日本精品在线| 国产不卡的视频在线观看| 国产伦精品一区二区三区精品视频| 人妻露脸一区二区三区| 国产精品免费精品一区二区| 青青操成人免费在线视频| 日韩人妻少妇一区二区| 国产一区一一一区麻豆| 中文字幕亚洲人妻在线视频| 欧美自拍偷自拍亚洲精品| 国内精品偷拍视频久久| 国产超薄黑色肉色丝袜| 日本99精品在线观看| 日韩人妻欧美一区二区久久| 欧美日韩人妻中文一区二区| 欧美精品一区二区三区白虎| 国产大屁股喷水在线观看视频| 日韩一级免费中文字幕视频| 亚洲一区二区欧美激情| 欧美自拍偷自拍亚洲精品| 日韩一区二区三区在线日|