青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

山寨:不是最好的,是最適合我們的!歡迎體驗山寨 中文版MSDN

Blog @ Blog

當華美的葉片落盡,生命的脈絡才歷歷可見。 -- 聶魯達

常用鏈接

統計

積分與排名

BBS

Blog

Web

最新評論

error LNK2001: unresolved external symbol _main解決辦法

解決外部符號錯誤:_main,_WinMain@16,__beginthreadex -!t'my`yK  
在創建MFC項目時, 不使用MFC AppWizard向導, 如果沒有柚煤孟钅坎問? 就會在編譯時產生很多連接錯誤, 如error LNK2001錯誤, 典型的錯誤提示有: m1+4#'  
libcmtd.lib(crt0.obj) : error LNK2001: unresolved external symbol _main (gd){j  
LIBCD.lib(wincrt0.obj) : error LNK2001: unresolved external symbol _WinMain@16 OuR5T>>  
msvcrtd.lib(crtexew.obj) : error LNK2001: unresolved external symbol _WinMain@16 *_g+&Us1  
nafxcwd.lib(thrdcore.obj) : error LNK2001: unresolved external symbol __beginthreadex }t,6 oT  
nafxcwd.lib(thrdcore.obj) : error LNK2001: unresolved external symbol __endthreadex <u%N(=9  
]wpN"w"  
1. Windows子系統設置錯誤, 提示: )WA5FzPLw  
libcmtd.lib(crt0.obj) : error LNK2001: unresolved external symbol _main *+oJ(e  
4f{'{1]\  
Windows項目要使用Windows子系統, 而不是Console, 可以這樣設置: *^'y#/Dg  
z !DF-%3|  
[Project] --> [Settings] --> 選擇"Link"屬性頁,  Qo!  
在Project Options中將/subsystem:console改成/subsystem:windows   T`H.k"Y{  
Xn?{t*{  
2. Console子系統設置錯誤, 提示: vwK 7b0M  
LIBCD.lib(wincrt0.obj) : error LNK2001: unresolved external symbol _WinMain@16 4Y~E`L0,  
8%P ><"  
控制臺項目要使用Console子系統, 而不是Windows, 設置: *Cl5Y':|h  
sipSn4_  
[Project] --> [Settings] --> 選擇"Link"屬性頁, WveN']q\  
在Project Options中將/subsystem:windows改成/subsystem:console BR4C@Z  
1 vBkC&  
3. 程序入口設置錯誤, 提示: dy2$&$=  
msvcrtd.lib(crtexew.obj) : error LNK2001: unresolved external symbol _WinMain@16 sP.>uExt  
G- (k~1q  
通常, MFC項目的程序入口函數是WinMain, 如果編譯項目的Unicode版本, 程序入口必須改為wWinMainCRTStartup, 所以需要重新設置程序入口: r#~P5[aV  
Os hl6 i  
[Project] --> [Settings] --> 選擇"Link"屬性頁, "1zk_#B*  
在Category中選擇Output, p HGRL  
再在Entry-point symbol中填入wWinMainCRTStartup, 即可 >IC}SZ  
F)c[@\.dm  
4. 線程運行時庫設置錯誤, 提示: X;t_- f  
nafxcwd.lib(thrdcore.obj) : error LNK2001: unresolved external symbol __beginthreadex AmiBqZTp  
nafxcwd.lib(thrdcore.obj) : error LNK2001: unresolved external symbol __endthreadex sz 23_{c?  
oz! {Fd-  
這是因為MFC要使用多線程時庫, 需要更改設置: L a-Y,1x](  
uAk>h^pbM  
[Project] --> [Settings] --> 選擇"C/C++"屬性頁, '%ET|1#SO  
在Category中選擇Code Generation, ;Y-M)k(  
再在Use run-time library中選擇Debug Multithreaded或者multithreaded 0v~5<Y'Z  
咸魚游俠(75374355) 12:11:11 <mW.@e5_  
其中, W_qa?Jv  
Single-Threaded                單線程靜態鏈接庫(release版本) Kh4w Q   
Multithreaded                  多線程靜態鏈接庫(release版本) |F]g[En 4  
multithreaded DLL              多線程動態鏈接庫(release版本) s-'qYgA6p  
Debug Single-Threaded          單線程靜態鏈接庫(debug版本) _ 7w_./y  
Debug Multithreaded            多線程靜態鏈接庫(debug版本) <[ ePw  
Debug Multithreaded DLL        多線程動態鏈接庫(debug版本) H8V/O9|(  
9^x@/  
單線程: 不需要多線程調用時, 多用在DOS環境下 /PJ|d5  
多線程: 可以并發運行 clUdag,C  
靜態庫: 直接將庫與程序Link, 可以脫離MFC庫運行 X]pEmHl  
動態庫: 需要相應的DLL動態庫, 程序才能運行 \n{&_:b+q  
release版本: 正式發布時使用 9J;ZZ/3  
debug版本: 調試階段使用   k9PoFC#k  

posted on 2008-10-14 22:07 isabc 閱讀(9936) 評論(2)  編輯 收藏 引用 所屬分類: BUG分析

評論

# re: error LNK2001: unresolved external symbol _main解決辦法 2008-10-21 21:16 isabc

現象:
當你編譯一個ATL工程的Release版時,你得到了下面這個鏈接錯誤:

LIBCMT.LIB(crt0.obj) : error LNK2001: unresolved external symbol _main

如下圖所示:


而Debug版本的編連卻順利通過。




原因與解決方法:
出錯原因:
如果你在工程中使用了CRT函數,而這些函數又需要CRT啟動代碼,就會出現這種鏈接錯誤。默認情況下,Release配置的Preprocessor definitions中定義了_ATL_MIN_CRT,它將CRT啟動代碼從你的EXE或DLL剔出去了。




背景知識:
1:

ATL支持把一個服務器編連優化成最小尺寸或者依賴性最小。我們可以定義三個預處理器符號來影響服務器的優化。

_ATL_MIN_CRT 服務器不鏈接標準的C/C++運行庫

_ATL_DLL 服務器動態鏈接工具函數庫atl.dll

_ATL_STATIC_REGISTRY 服務器靜態鏈接對組件注冊的支持

如果定義了預處理器符號_ATL_MIN_CRT,那么我們的服務器不鏈接C/C++運行庫,并且ATL提供了函數malloc、realloc、new和delete的一個實現。當定義了這個符號時,我們不能調用任何其他的C/C++運行庫的函數。否則,就會受到這樣的待遇:

LIBCMT.LIB(crt0.obj) : error LNK2001: unresolved external symbol _main

ATL向導生成的ATL工程為所有的Release版本的編連定義了_ATL_MIN_CRT,但是沒有為Debug版本定義這個符號。

Debug配置沒有定義這三個符號中的任何一個。

RelMinSize配置定義了_ATL_MIN_CRT和_ATL_DLL。

RelMinDependency配置定義了_ATL_MIN_CRT和_ATL_STATIC_REGISTRY。



2:

C Run-Time Library (without iostream)
Characteristics
Option
Defined

LIBC.LIB
a statically linked library for single-threaded programs

(Single threaded, static link)
/ML


LIBCMT.LIB
a statically linked library that supports multithreaded programs

(Multithreaded, static link)
/MT
_MT

MSVCRT.LIB
Multithreaded, dynamic link (import library for MSVCRT.DLL)
/MD
_MT, _DLL




解決方法:


下面方法中的任何一個都可以糾正這個錯誤:

Ø 去除_ATL_MIN_CRT這個預處理符號;

Ø 打開stdafx.cpp,注釋掉#include <atlimpl.cpp>這句話,然后編譯,即可;

Ø 在工程的配置對話框的Link頁面上,"ignore libraries"編輯框中輸入Libcmt.lib,然后編譯,如下圖所示:


你將會得到幾個“unresolved external”的錯誤,如下所示。


這個列表就是你用到的CRT的函數。

Look for things that you think may be pulling in the startup code and remove them if you can.Instead, use their Win32 equivalents. For example, use lstrcmp() instead of strcmp(). Known functions that require CRT startup code are some of the string and floating point functions.

其他:
我的VC IDE是6.0版本和SP5,如果用ATL COM AppWizard創建Service (EXE)工程。在這種情況下,它的RelMinDependency版本的配置中就沒有定義_ATL_MIN_CRT符號!這和微軟聲稱的“Service EXE Created with ATL COM AppWizard Doesn't Build in Release Mode”不一樣,可能這是一個已經被FIX了的Bug。





Written by zhengyun



參考文獻:

1. 《INFO: Active Template Library (ATL) 2.0 Readme File [Q165259]》

2. 《INFO: LNK2001 on CRT Symbols in ATL Release Build [Q165076]》



  回復  更多評論   

# re: error LNK2001: unresolved external symbol _main解決辦法 2008-10-21 21:17 isabc

http://dev.csdn.net/article/12/12676.shtm  回復  更多評論   

廣告信息(免費廣告聯系)

中文版MSDN:
歡迎體驗

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            亚洲国产日韩欧美在线图片| 久久久噜噜噜久噜久久| 国产精品国内视频| 国产精品久久久久久久久久妞妞| 亚洲国产成人久久综合| 麻豆久久精品| 欧美激情精品久久久| 亚洲欧美www| 久久www成人_看片免费不卡| 一区二区在线免费观看| 亚洲黄色一区| 国产精品久久久久久久7电影 | 午夜精品一区二区三区在线视| 欧美久久久久久| 好吊一区二区三区| 久久久久久9| 久久久久久久性| 免费日韩av片| 久久九九热免费视频| 欧美成人网在线| 久久国内精品视频| 欧美日韩成人综合在线一区二区| 欧美在线观看视频一区二区| 蜜桃久久精品乱码一区二区| 亚洲一区二区伦理| 美女免费视频一区| 久久精品视频一| 国产精品都在这里| 日韩视频第一页| 亚洲国产欧美日韩| 久久久久综合一区二区三区| 亚洲天堂av在线免费观看| 免费欧美视频| 欧美激情乱人伦| 亚洲欧洲久久| 中文成人激情娱乐网| 亚洲一区二区三区高清| 欧美精品91| 亚洲视频专区在线| 欧美一二三区精品| 国产综合色在线| 久久成人精品| 亚洲国产日韩欧美| 亚洲午夜极品| 国产日韩精品视频一区| 久久国产黑丝| 亚洲激情视频在线播放| 宅男噜噜噜66一区二区66| 欧美午夜不卡视频| 欧美亚洲一区二区在线| 久久国产精品久久久久久| 国内一区二区三区在线视频| 久久久久久夜| 亚洲一区二区视频在线| 免费成人你懂的| 亚洲天堂av在线免费| 国产综合视频在线观看| 欧美日韩三区| 美女任你摸久久| 久久精品道一区二区三区| 亚洲日本激情| 欧美/亚洲一区| 久久gogo国模啪啪人体图| 99热这里只有成人精品国产| 国产主播精品| 国产精品亚洲不卡a| 欧美大色视频| 久久婷婷av| 久久久天天操| 久久久久久久久蜜桃| 亚洲一区免费视频| 亚洲天堂av在线免费| 亚洲激情在线播放| 亚洲日韩成人| 日韩一级欧洲| 亚洲午夜一区| 小黄鸭视频精品导航| 亚洲欧美福利一区二区| 亚洲夜晚福利在线观看| 亚洲欧美日韩国产一区二区三区 | 午夜日韩电影| 久久久久.com| 欧美精品二区| 国产麻豆综合| 亚洲国产精品欧美一二99| 国内精品久久久久伊人av| 伊人狠狠色j香婷婷综合| 国产一区二区高清不卡| 激情久久综艺| 一区二区三区久久网| 久久人体大胆视频| 亚洲福利视频一区| 亚洲素人在线| 欧美成人69av| 国产精品婷婷| 99精品久久| 亚洲国产婷婷香蕉久久久久久99 | 国产九区一区在线| 亚洲国产精品第一区二区 | 一区二区三区高清视频在线观看| 亚洲欧美在线一区| 欧美日韩国产一级| 亚洲人成亚洲人成在线观看| 欧美在线一区二区| 一本色道久久88综合日韩精品| 久久五月天婷婷| 极品av少妇一区二区| 久久久91精品国产一区二区精品| 亚洲国产三级在线| 欧美福利视频在线| 91久久久久久久久| 欧美激情亚洲国产| 另类酷文…触手系列精品集v1小说| 国产精品一二三四区| 亚洲欧美韩国| 欧美在线免费一级片| 国产色综合天天综合网| 欧美在线一二三四区| 亚洲伊人网站| 亚洲高清一区二区三区| 新67194成人永久网站| 亚洲一区二区三区乱码aⅴ| 国产精品黄页免费高清在线观看| 亚洲视频播放| 性娇小13――14欧美| 精品电影在线观看| 亚洲精品乱码久久久久久| 欧美性一区二区| 狂野欧美一区| 国产精品久久久久一区| 久久久久久久久久码影片| 久久久久久久欧美精品| 妖精成人www高清在线观看| 亚洲视屏一区| 亚洲国产精品一区| 在线一区亚洲| 亚洲精品国产拍免费91在线| 亚洲欧美中文在线视频| 亚洲精选中文字幕| 久久国产夜色精品鲁鲁99| 日韩小视频在线观看| 久久久久国产精品一区| 亚洲女性喷水在线观看一区| 蜜乳av另类精品一区二区| 欧美一区二区| 国产精品美女主播在线观看纯欲| 欧美成人自拍| 亚洲第一精品夜夜躁人人爽| 新狼窝色av性久久久久久| 一本色道久久88亚洲综合88| 蜜臀av性久久久久蜜臀aⅴ| 欧美一区亚洲一区| 国产美女扒开尿口久久久| 日韩网站免费观看| 亚洲手机在线| 国产精品久久国产精品99gif | 欧美一区永久视频免费观看| 亚洲综合99| 国产午夜精品在线观看| 久久精品盗摄| 欧美激情二区三区| 亚洲视频高清| 国产欧美日韩视频一区二区三区| 午夜在线精品偷拍| 蜜臀久久久99精品久久久久久| 亚洲激情视频在线观看| 欧美欧美全黄| 另类综合日韩欧美亚洲| 日韩一级黄色大片| 久久免费黄色| 亚洲一区二区在线视频| 国产综合色产| 欧美视频免费看| 久久深夜福利免费观看| 亚洲免费av片| 一区二区在线看| 欧美亚一区二区| 欧美顶级艳妇交换群宴| 午夜视频一区二区| 一区二区三区国产在线| 亚洲成色www久久网站| 黄色一区二区在线| 国产精品美女久久久| 欧美二区在线播放| 久久男人av资源网站| 欧美在线网站| 欧美有码视频| 日韩视频免费观看高清在线视频| 亚洲欧美中文日韩在线| av不卡在线| 欧美色精品在线视频| 欧美激情一区二区三区四区| 久久一区二区三区av| 久久精品女人| 你懂的亚洲视频| 欧美性做爰猛烈叫床潮| 国产精品入口麻豆原神| 国产酒店精品激情| 亚洲国产欧美日韩精品| 亚洲精品免费在线播放|