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

山寨:不是最好的,是最適合我們的!歡迎體驗山寨 中文版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 閱讀(9927) 評論(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>
            老司机一区二区三区| 亚洲一区尤物| 亚洲高清视频中文字幕| 久久久五月婷婷| 亚洲精品在线观看免费| 亚洲精品一区二| 久久综合伊人77777| 六月婷婷一区| 欧美一区二区三区在线看| 久久精视频免费在线久久完整在线看 | 99re6热在线精品视频播放速度| 欧美剧在线观看| 久久麻豆一区二区| 欧美国产先锋| 久久久久久精| 欧美日韩视频在线| 欧美成人69av| 韩国v欧美v日本v亚洲v| 亚洲国产综合在线| 亚洲国产岛国毛片在线| 在线一区二区三区做爰视频网站 | 中文亚洲字幕| 欧美在线播放高清精品| 午夜精品一区二区三区在线视| 久久久精品一区| 欧美一区二区三区的| 欧美激情91| 亚洲一区二区在线播放| 亚洲午夜精品网| 久久久女女女女999久久| 日韩图片一区| 久久久在线视频| 久久资源在线| 一本色道久久综合亚洲精品婷婷 | 老司机亚洲精品| 老牛嫩草一区二区三区日本| 欧美三级在线播放| 国产精品青草久久| 亚洲人成久久| 久久av一区二区| 久久久久久一区二区| 日韩天堂av| 亚洲女性裸体视频| 欧美区一区二| 国产精品v亚洲精品v日韩精品| 久久国产福利| 国产精品色网| 一区二区三区在线免费播放| 午夜精品免费| 久久综合给合| 久久激情一区| 欧美精品一区二区在线播放| 国产精品成人一区二区三区夜夜夜| 亚洲高清自拍| 亚洲一区二区网站| 91久久亚洲| 中文国产一区| 欧美色网在线| 尤妮丝一区二区裸体视频| 一本一道久久综合狠狠老精东影业| 免费在线亚洲欧美| 亚洲天堂久久| 国产精品高清网站| 在线免费观看成人网| 久久午夜视频| 一本久久综合| 久久夜色精品国产欧美乱极品| 国产亚洲精品久久久久婷婷瑜伽| 亚洲精品黄网在线观看| 亚洲成人直播| 久久久精品免费视频| 一区二区三区在线免费播放| 艳女tv在线观看国产一区| 久久久免费精品视频| 欧美伊人久久久久久久久影院| 欧美日韩国产综合视频在线| 亚洲伊人久久综合| 亚洲国产天堂久久综合网| 久久精品成人欧美大片古装| 91久久精品国产91久久性色tv| 亚洲一区在线播放| 91久久精品日日躁夜夜躁欧美 | 欧美日韩亚洲成人| 国产精品美女久久久久久免费| 午夜国产精品影院在线观看| 久久亚洲精选| 欧美高清在线视频观看不卡| 国产欧美日韩视频一区二区三区| 国内一区二区三区| 亚洲第一级黄色片| 免费成人激情视频| 这里只有精品丝袜| 亚洲精品午夜| 韩国一区电影| 久久久亚洲一区| 欧美日韩免费在线视频| 亚洲区中文字幕| 国产美女精品视频| 欧美电影免费观看| 久久综合九色| 亚洲欧美日韩一区二区| 一片黄亚洲嫩模| 在线观看亚洲精品视频| 欧美不卡在线| 国产精品揄拍500视频| 亚洲欧美日韩直播| 久久在线91| 国产精品久久二区二区| 亚洲欧美日韩一区二区| 欧美va亚洲va日韩∨a综合色| 最近看过的日韩成人| 亚洲一区成人| 国产视频在线观看一区| 久久久99国产精品免费| 亚洲在线播放| 国内外成人在线| av成人黄色| 久久综合久久综合这里只有精品| 伊人成人在线| 性色av一区二区怡红| 影音欧美亚洲| 欧美一级视频精品观看| 精品二区视频| 欧美中文字幕视频| 亚洲黄一区二区| 看片网站欧美日韩| 一区二区三区精品在线| 亚洲欧洲日本专区| 亚洲国产黄色片| 中文在线不卡视频| 亚洲深爱激情| 久久爱91午夜羞羞| 欧美中日韩免费视频| 久久精品五月婷婷| 久久香蕉精品| 欧美午夜电影网| 国产精品99久久久久久白浆小说| 国产日韩av在线播放| 亚洲在线日韩| 欧美日韩精品二区| 久久免费精品视频| 欧美色欧美亚洲另类七区| 久久久久久欧美| 欧美日产国产成人免费图片| 欧美亚洲视频| 午夜国产不卡在线观看视频| 另类图片综合电影| 欧美亚洲一区在线| 欧美成人蜜桃| 久久久亚洲人| 99天天综合性| 欧美成人午夜77777| 欧美一区国产二区| 欧美 日韩 国产在线| 亚洲东热激情| 欧美成人一区二区| 亚洲一区免费视频| 国产精品丝袜久久久久久app| 欧美黑人国产人伦爽爽爽| 亚洲人成毛片在线播放女女| 欧美在线黄色| 亚洲福利视频网| 黄页网站一区| 午夜精品久久久久99热蜜桃导演| 亚洲视频每日更新| 免费看亚洲片| 一本一本久久a久久精品综合妖精 一本一本久久a久久精品综合麻豆 | 亚洲成在线观看| 欧美日韩视频一区二区三区| 亚洲福利视频二区| 亚洲欧美激情一区二区| 欧美日韩大片| 欧美一区二区成人| 久久国产精品久久久久久久久久| 一区二区在线观看视频在线观看 | 国产精品国产一区二区| 午夜在线a亚洲v天堂网2018| 国产一区二区三区在线观看免费视频| 一本色道久久综合亚洲二区三区| 亚洲精选在线观看| 美女网站久久| 亚洲欧美一区二区在线观看| 亚洲欧美日韩在线高清直播| 亚洲国产成人在线播放| 牛牛精品成人免费视频| 亚洲免费在线观看| 久久精品国产精品亚洲| 正在播放亚洲| 国产精品一区二区a| 欧美国产一区视频在线观看| 亚洲精品1区| 久久综合色一综合色88| 亚洲国产精品久久| 国产日韩一区二区三区| 老司机一区二区三区| 欧美一区二区日韩一区二区| 免费不卡在线观看| 久久aⅴ国产紧身牛仔裤| 在线免费观看日本一区| 国产欧美日韩亚洲精品|