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

山寨:不是最好的,是最適合我們的!歡迎體驗山寨 中文版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 閱讀(9933) 評論(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>
            欧美精品亚洲二区| 小黄鸭精品aⅴ导航网站入口| 亚洲欧美日韩一区在线观看| 一区三区视频| 韩日在线一区| 亚洲国产精品va| 亚洲日韩成人| 亚洲午夜伦理| 久久国内精品视频| 久久综合久久久| 欧美.www| 亚洲深夜影院| 久久国产88| 免费视频亚洲| 国产精品av久久久久久麻豆网| 国产精品激情av在线播放| 韩国av一区二区三区在线观看 | 卡一卡二国产精品| 欧美国产精品v| 亚洲视频在线观看网站| 久热国产精品视频| 国产精品久久久久久影视| 韩国av一区二区三区四区| 夜夜爽av福利精品导航| 久久午夜av| 午夜精品福利在线观看| 欧美激情精品| 国产色视频一区| 一本色道久久综合亚洲精品高清| 久久视频一区二区| 香蕉久久夜色精品国产| 欧美日本韩国| 一本一本久久a久久精品综合麻豆| 久久婷婷蜜乳一本欲蜜臀| 在线一区亚洲| 亚洲人成在线观看网站高清| 午夜精品短视频| 国产精品中文在线| 久久精品123| 欧美在线日韩精品| 在线观看日韩精品| 91久久久久| 欧美日韩精品一区二区三区四区 | 国产日韩欧美综合一区| 欧美一区二区三区四区夜夜大片| 99亚洲一区二区| 国产精品一区二区三区四区五区| 午夜精品久久久久久久99樱桃| 亚洲视频观看| 一区二区在线观看视频| 亚洲级视频在线观看免费1级| 欧美精品一卡二卡| 欧美一区二区三区免费观看| 久久人人九九| 亚洲午夜精品福利| 久久伊伊香蕉| 亚洲免费影视第一页| 久久精品水蜜桃av综合天堂| 亚洲精品一区二区三区四区高清| 日韩视频专区| 亚洲欧洲精品一区| 亚洲综合精品自拍| 日韩亚洲在线| 欧美丰满少妇xxxbbb| 久久综合给合久久狠狠色| 欧美日韩一卡二卡| 亚洲毛片在线免费观看| 久久精品国产亚洲一区二区| 亚洲精品中文字幕女同| 久久久视频精品| 久久人人97超碰人人澡爱香蕉| 国产精品夫妻自拍| 亚洲午夜精品视频| 亚洲一区精品电影| 欧美日韩国产成人高清视频| 亚洲二区在线视频| 亚洲国产欧美在线| 欧美成人午夜| 亚洲美女电影在线| 国产精品99久久不卡二区| 欧美精品一区二区视频| 欧美高潮视频| 亚洲午夜精品视频| 国产欧美69| 久久综合色天天久久综合图片| 久久视频这里只有精品| 国产综合激情| 老司机亚洲精品| 亚洲激情欧美| 久久激情中文| 一区二区三区高清在线| 欧美色欧美亚洲高清在线视频| 一本色道久久综合狠狠躁篇的优点| 日韩午夜电影av| 国产亚洲女人久久久久毛片| 另类成人小视频在线| 一区二区三区四区在线| 久久日韩精品| 午夜精品婷婷| 亚洲精品一区二区网址| 国内在线观看一区二区三区| 欧美激情自拍| 久久伊人精品天天| 久久精品亚洲一区| 久久成年人视频| 亚洲欧美视频在线| 伊人久久婷婷色综合98网| 欧美成人资源| 老妇喷水一区二区三区| 欧美一区午夜视频在线观看| 亚洲美女黄色| 亚洲精品一区二区三区婷婷月| 久久亚洲图片| 毛片精品免费在线观看| 久久er精品视频| 久久国内精品自在自线400部| 亚洲综合色激情五月| 亚洲综合色丁香婷婷六月图片| 亚洲人成高清| 一区二区冒白浆视频| 艳女tv在线观看国产一区| 亚洲日韩欧美视频一区| 亚洲精品久久嫩草网站秘色| 亚洲三级电影在线观看| 91久久久国产精品| 亚洲一区二区三区乱码aⅴ蜜桃女| 一区二区三区高清| 久久精品91| 亚洲激情二区| 久久xxxx| 国产精品女人久久久久久| 狠狠色噜噜狠狠色综合久| 亚洲毛片在线| 久久一区二区三区超碰国产精品| 嫩草国产精品入口| 99riav国产精品| 欧美国产三级| 国模精品一区二区三区| 99国内精品久久| 欧美插天视频在线播放| 亚洲一区二区三区在线视频| 蜜桃av综合| 黄色一区二区在线观看| 性感少妇一区| 一区二区三区色| 欧美午夜视频网站| 亚洲国产欧美日韩另类综合| 久久久久www| 亚洲性图久久| 欧美 日韩 国产在线| 久久不见久久见免费视频1| 国产美女诱惑一区二区| 亚洲欧美在线观看| 亚洲一区二区三区免费观看| 欧美性一区二区| 午夜视频精品| 午夜亚洲福利| 狠狠操狠狠色综合网| 久久午夜av| 欧美激情亚洲综合一区| 99视频有精品| 亚洲欧美春色| 亚洲茄子视频| 在线亚洲欧美视频| 国产日韩欧美三级| 欧美mv日韩mv国产网站| 欧美精品一区在线观看| 亚洲男人的天堂在线观看| 久久精品国产99| 夜夜夜久久久| 久久免费偷拍视频| 亚洲一区二区不卡免费| 亚洲欧美日韩高清| 日韩午夜电影av| 午夜在线视频观看日韩17c| 亚洲激情在线观看视频免费| 亚洲经典自拍| 精品成人一区二区三区| 99re66热这里只有精品3直播| 国产精品一区二区在线观看不卡| 久久综合99re88久久爱| 国产精品久久激情| 亚洲福利视频一区| 国内一区二区在线视频观看| 亚洲人体大胆视频| 91久久精品国产91性色tv| 久久国产精品99久久久久久老狼| 一本久道久久综合中文字幕| 久久免费视频网| 另类激情亚洲| 亚洲福利在线看| 美女免费视频一区| 看片网站欧美日韩| 亚洲第一黄色| 免费日韩成人| 激情六月婷婷综合| 久久av最新网址| 美腿丝袜亚洲色图| 国产日韩1区| 久久夜色精品国产|