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

山寨:不是最好的,是最適合我們的!歡迎體驗山寨 中文版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>
            亚洲午夜精品网| 亚洲神马久久| 亚洲国产精品一区二区第一页 | 欧美大片在线影院| 欧美日韩亚洲一区二区三区| 欧美aaaaaaaa牛牛影院| 欧美大片免费观看| 一本色道久久综合亚洲精品婷婷| 正在播放亚洲| 免费观看日韩av| 久久综合国产精品| 久久综合久久综合久久| 国产乱子伦一区二区三区国色天香| 亚洲日本激情| 亚洲免费视频网站| 国产精品久久久久永久免费观看| 一本一本a久久| 亚洲综合日本| 欧美激情无毛| 久久经典综合| 亚洲欧洲一区二区三区久久| 亚洲国产小视频| 亚洲国产aⅴ天堂久久| 玖玖综合伊人| 亚洲精品视频啊美女在线直播| 欧美一级午夜免费电影| 狠久久av成人天堂| 欧美成人精品在线播放| 一本色道久久综合亚洲精品按摩| 欧美在线免费视屏| 美女主播一区| 亚洲电影免费在线| 亚洲国产精品一区| 欧美午夜精品久久久久久久| 午夜精品视频在线| 欧美国产精品日韩| 亚洲一区二区三区高清| 欧美人与性动交a欧美精品| 久久精品国产久精国产一老狼| 亚洲美女视频在线观看| 久久伊人免费视频| 亚洲欧洲久久| 国产一区二区三区精品久久久| 欧美精品日本| 久久精品中文字幕免费mv| 免费日韩一区二区| 亚洲欧美日韩在线综合| 韩国精品一区二区三区| 欧美成人官网二区| 久久久久久伊人| 先锋a资源在线看亚洲| 亚洲精品日韩欧美| 久久久久久久激情视频| 国产精品成av人在线视午夜片| 久久三级福利| 亚洲小说春色综合另类电影| 亚洲国产精品成人久久综合一区| 欧美日韩一区高清| 欧美一区二区三区四区在线| 欧美日韩激情网| 欧美伊久线香蕉线新在线| 99re在线精品| 亚洲国产精品尤物yw在线观看| 久久国产精品第一页| 欧美 日韩 国产精品免费观看| 久久一区二区三区国产精品| 欧美一区中文字幕| 9色国产精品| 一区二区精品在线| 麻豆免费精品视频| 亚洲第一精品夜夜躁人人爽| 老司机一区二区| 久久久亚洲成人| 久久九九国产精品| 欧美在线1区| 久久最新视频| 久久久久久一区二区| 久久国产精品高清| 欧美在线亚洲在线| 久久精品最新地址| 一本色道久久综合亚洲二区三区 | 欧美午夜电影一区| 麻豆精品视频| 麻豆freexxxx性91精品| 久久免费视频网站| 久久中文字幕导航| 欧美伊人影院| 模特精品在线| 欧美精品日韩一本| 国产精品vip| 国产色视频一区| 亚洲国产小视频| 久久亚洲综合网| 欧美夫妇交换俱乐部在线观看| 欧美福利影院| 国产精品久久久久高潮| 国产一区二区毛片| 亚洲国产小视频在线观看| 在线视频精品| 免费成人在线观看视频| 亚洲国产欧美日韩另类综合| 99在线|亚洲一区二区| 一本一本久久| 欧美va亚洲va香蕉在线| 午夜欧美大片免费观看| 久久综合久久久久88| 亚洲午夜久久久久久久久电影院 | 欧美一区二区三区播放老司机| 久久精品动漫| 99综合视频| 亚洲午夜久久久久久久久电影网| 激情欧美丁香| 欧美亚洲一区在线| 亚洲男人影院| 欧美成人高清| 欧美黄色大片网站| 国产一区二区三区直播精品电影 | 久久九九国产精品| 国产精品久久久久久久久久久久 | 一区二区三区偷拍| 欧美日韩精品一区视频| 亚洲人被黑人高潮完整版| 一区二区三区在线观看视频| 亚洲高清在线观看一区| 欧美人与禽猛交乱配| 老牛国产精品一区的观看方式| 欧美日韩视频免费播放| 亚洲第一黄网| 亚洲视频一二三| 国产精品久久久久aaaa樱花| 日韩亚洲国产欧美| 一区二区免费在线视频| 国产精品久久一卡二卡| 亚洲最新在线| 欧美一区午夜视频在线观看| 国产精品一区久久久| 久久国产精品亚洲77777| 久久久久久精| 久久免费观看视频| 久久全国免费视频| 伊人久久久大香线蕉综合直播| 暖暖成人免费视频| 亚洲欧美在线aaa| 久久夜色精品| 亚洲免费视频网站| 亚洲激情视频在线观看| 国产日韩一区二区三区在线播放 | 99在线热播精品免费| 久久精品99无色码中文字幕| 国产麻豆精品theporn| 你懂的成人av| 亚洲欧美日韩精品久久久| 欧美黄色成人网| 蜜桃久久精品一区二区| 一区二区三区四区五区在线| 国产一区二三区| 免费亚洲视频| 欧美一级日韩一级| 欧美在线免费看| 亚洲一区二区三区四区中文| 在线激情影院一区| 国产一区二区三区视频在线观看| 欧美日韩一级片在线观看| 男人的天堂亚洲| 欧美va天堂va视频va在线| 玖玖玖国产精品| 欧美岛国激情| 欧美日韩中文在线| 亚洲欧美成人综合| 91久久精品网| 免费观看一级特黄欧美大片| 国产区在线观看成人精品| 欧美中文日韩| 免费观看成人| 欧美日韩亚洲一区三区| 香蕉免费一区二区三区在线观看| 国产偷国产偷精品高清尤物| 欧美成人资源网| 韩国久久久久| 小黄鸭精品aⅴ导航网站入口| 伊人狠狠色j香婷婷综合| 99在线视频精品| 99xxxx成人网| 免费视频一区| 免费日韩成人| 亚洲国产精品高清久久久| 欧美一区日本一区韩国一区| 一区二区高清在线| 欧美日韩免费一区二区三区| 最近中文字幕日韩精品 | 欧美高清成人| 国产视频自拍一区| 亚洲欧美一区二区激情| 欧美一区二区精美| 极品尤物av久久免费看| 免费观看在线综合| 99爱精品视频| 美女国内精品自产拍在线播放| 亚洲国产美女| 欧美日韩一区综合|