天天看點

解決外部符号錯誤

今天正式開始學 win 32 api 遇到了設定上的問題  現在解決了,下面是其他高手的文章,轉來的 呵呵

友善以後查找

解決外部符号錯誤:_main,[email protected],__beginthreadex [+緬? 

在建立MFC項目時, 不使用MFC AppWizard向導, 如果沒有設定好項目參數, 就會在編譯時産生很多連接配接錯誤, 如error LNK2001錯誤, 典型的錯誤提示有: ?lt;%鮩穑h?  

libcmtd.lib(crt0.obj) : error LNK2001: unresolved external symbol _main €臯y⊥? 

LIBCD.lib(wincrt0.obj) : error LNK2001: unresolved external symbol [email protected] R??m4? 

msvcrtd.lib(crtexew.obj) : error LNK2001: unresolved external symbol [email protected] {髒??穳? 

nafxcwd.lib(thrdcore.obj) : error LNK2001: unresolved external symbol __beginthreadex 5兲昧?`? 

nafxcwd.lib(thrdcore.obj) : error LNK2001: unresolved external symbol __endthreadex p9?ぶL?? 

IC逘?0W  

1. Windows子系統設定錯誤, 提示: 案-h^,+t  

libcmtd.lib(crt0.obj) : error LNK2001: unresolved external symbol _main v^Z孄? 

!0 赮rN払? 

Windows項目要使用Windows子系統, 而不是Console, 可以這樣設定: Ex潉燀W蹇  

X鹸堚`籷  

[Project] --> [Settings] --> 選擇"Link"屬性頁, 8辋鑬鉙C  

在Project Options中将/subsystem:console改成/subsystem:windows   靴朵唧S瀿? 

Q蓮鏆9母  

2. Console子系統設定錯誤, 提示: ?r,聐B貫z  

LIBCD.lib(wincrt0.obj) : error LNK2001: unresolved external symbol [email protected] c?lq耝C? 

`)?歌/V収  

控制台項目要使用Console子系統, 而不是Windows, 設定: 蚻???&? 

P彑G偯u{t  

[Project] --> [Settings] --> 選擇"Link"屬性頁, ?儼>?勳? 

在Project Options中将/subsystem:windows改成/subsystem:console ?XU6??}  

NG!痬壓?  

3. 程式入口設定錯誤, 提示: ]<K;祕A5? 

msvcrtd.lib(crtexew.obj) : error LNK2001: unresolved external symbol [email protected] 璞m叽雞pb  

魍3G飈{ J  

通常, MFC項目的程式入口函數是WinMain, 如果編譯項目的Unicode版本, 程式入口必須改為wWinMainCRTStartup, 是以需要重新設定程式入口: IV _??;2  

▁ I ?帖? 

[Project] --> [Settings] --> 選擇"Link"屬性頁, 鍩??}  

在Category中選擇Output, R儳楑? 

再在Entry-point symbol中填入wWinMainCRTStartup, 即可 G裾3~?/  

铘隍f?e? 

4. 線程運作時庫設定錯誤, 提示: W淐м⑵b? 

nafxcwd.lib(thrdcore.obj) : error LNK2001: unresolved external symbol __beginthreadex 敐鑳|J5次? 

nafxcwd.lib(thrdcore.obj) : error LNK2001: unresolved external symbol __endthreadex 階輾箒€_$#  

<袒?晪偰L  

這是因為MFC要使用多線程時庫, 需要更改設定: ?/??帶Q  

輝屫媐R? 

[Project] --> [Settings] --> 選擇"C/C++"屬性頁, yW棻櫻R訆? 

在Category中選擇Code Generation, 玲J?俳?L  

再在Use run-time library中選擇Debug Multithreaded或者multithreaded /  y1?  

鹹魚遊俠(75374355) 12:11:11 YXk縣漳  

其中, 5Sx4V鳊?  

Single-Threaded                單線程靜态連結庫(release版本) 0 G糛  

Multithreaded                  多線程靜态連結庫(release版本) €涖{5?^=? 

multithreaded DLL              多線程動态連結庫(release版本) H???WN  

Debug Single-Threaded          單線程靜态連結庫(debug版本) *1ys?骧饅  

Debug Multithreaded            多線程靜态連結庫(debug版本) ??繄馘8  

Debug Multithreaded DLL        多線程動态連結庫(debug版本) l吻5?/U? 

7淽崆黿M?  

單線程: 不需要多線程調用時, 多用在DOS環境下 p姡W 9到  

多線程: 可以并發運作 ▲J讖幊劵  

靜态庫: 直接将庫與程式Link, 可以脫離MFC庫運作 纉茙3z  

動态庫: 需要相應的DLL動态庫, 程式才能運作 ?YI謀閣? 

release版本: 正式釋出時使用 眂栴嶉?? 

debug版本: 調試階段使用   0eP?  

繼續閱讀