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

山寨:不是最好的,是最適合我們的!歡迎體驗山寨 中文版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>
            免费亚洲电影在线| 一区二区成人精品| 欧美—级高清免费播放| 麻豆久久婷婷| 欧美电影在线观看完整版| 欧美成人午夜视频| 欧美视频在线观看免费网址| 欧美午夜电影在线观看| 国产精品视频xxx| 激情综合色综合久久| 亚洲国产一区二区三区青草影视| 亚洲精品美女| 午夜精品一区二区三区在线视 | 欧美国产亚洲视频| 亚洲第一天堂av| 亚洲精品一区二| 亚洲欧美另类在线观看| 久久精品av麻豆的观看方式| 免费中文日韩| 国产精品视频专区| 亚洲第一精品福利| 午夜在线不卡| 欧美国产精品va在线观看| 日韩视频二区| 久久综合九九| 国产乱码精品一区二区三区不卡| 亚洲国产精品精华液网站| 亚洲欧美综合精品久久成人| 免费观看日韩av| 亚洲欧美在线观看| 欧美日韩精品一区二区| 一区二区视频免费在线观看 | 中文高清一区| 久久久久国产一区二区| 91久久久在线| 欧美主播一区二区三区| 国产精品大片| 99精品国产99久久久久久福利| 久久精品在线| 一片黄亚洲嫩模| 欧美精品一区二区三区四区| 一区二区三区在线观看欧美| 新片速递亚洲合集欧美合集| 亚洲国产欧美不卡在线观看| 久久激情婷婷| 国产主播喷水一区二区| 欧美一区二区三区男人的天堂 | 欧美日韩另类视频| 亚洲国产你懂的| 美女亚洲精品| 久久久噜久噜久久综合| 国产亚洲制服色| 久久精品久久99精品久久| 亚洲午夜精品一区二区| 欧美久久影院| 国产精品99久久久久久www| 91久久在线观看| 欧美国产日韩视频| 99精品欧美一区二区三区综合在线| 免费看亚洲片| 欧美成ee人免费视频| 亚洲激情av在线| 亚洲黄色影片| 欧美三级日韩三级国产三级| 亚洲综合国产| 香蕉免费一区二区三区在线观看| 国产酒店精品激情| 两个人的视频www国产精品| 久久精品在线播放| 亚洲丰满在线| 日韩视频在线免费| 国产精品久久久久一区二区三区共| 亚洲一区观看| 久久精品主播| 一本色道久久综合一区| 亚洲亚洲精品在线观看| 国产午夜精品视频| 欧美高清视频一区二区三区在线观看| 欧美.www| 久久国产毛片| 免费日韩av电影| 亚洲免费一在线| 久久久不卡网国产精品一区| 亚洲精品乱码久久久久久蜜桃麻豆 | 亚洲电影在线看| 亚洲欧洲在线免费| 国产在线观看精品一区二区三区| 国产精品美女午夜av| 久久精品动漫| 欧美福利视频在线观看| 亚洲宅男天堂在线观看无病毒| 午夜精品国产更新| 亚洲激情成人网| 亚洲欧美日本另类| 亚洲福利国产精品| 亚洲一区二区三区免费视频| 狠狠综合久久| 一本色道久久综合亚洲精品不卡| 国产亚洲精品aa| 亚洲麻豆av| 国内在线观看一区二区三区| 亚洲国产婷婷香蕉久久久久久| 国产精品麻豆va在线播放| 免费成人激情视频| 国产女人aaa级久久久级| 亚洲国产高清视频| 国外视频精品毛片| 午夜电影亚洲| 亚洲免费小视频| 欧美久久在线| 亚洲电影免费| 樱桃视频在线观看一区| 亚洲在线一区二区| 99ri日韩精品视频| 狂野欧美一区| 麻豆精品网站| 在线成人免费视频| 久久国产精品毛片| 欧美伊人久久大香线蕉综合69| 欧美区国产区| 亚洲高清视频一区二区| 国内精品国产成人| 欧美一区二区三区视频免费播放| 亚洲视频一起| 欧美日韩精品在线| 最新国产成人av网站网址麻豆| 在线播放中文字幕一区| 欧美一区二区| 久久久久久久精| 国产伦精品一区二区三区视频黑人| 日韩午夜电影av| 亚洲一区二区三区免费在线观看| 欧美日韩国产成人| 日韩视频免费大全中文字幕| 亚洲精品视频免费| 欧美国产一区二区三区激情无套| 欧美激情第4页| 99re热精品| 国产精品久久中文| 亚洲欧美日韩国产一区二区三区 | 亚洲精品美女在线观看播放| 久久精品视频va| 毛片一区二区三区| 亚洲国产成人久久| 欧美精品123区| 99国产精品视频免费观看| 99视频有精品| 国产精品区一区| 欧美一区二区三区日韩视频| 久热re这里精品视频在线6| 激情av一区二区| 免费成年人欧美视频| 怡红院精品视频| 亚洲国产精品一区二区www在线| 在线精品观看| 欧美精品国产精品日韩精品| 日韩亚洲视频在线| 久久精品中文字幕一区| 亚洲国产精品传媒在线观看| 欧美日韩国产a| 久久国内精品自在自线400部| 亚洲缚视频在线观看| 亚洲男人天堂2024| 激情五月综合色婷婷一区二区| 欧美激情91| 亚洲欧美日韩在线播放| 欧美福利一区二区三区| 亚洲一区三区视频在线观看| 国内精品久久久久影院薰衣草| 美国十次成人| 亚洲午夜极品| 欧美国产激情| 亚洲一区精品电影| 在线成人免费视频| 国产精品久久久久久超碰| 久久亚洲不卡| 亚洲影院高清在线| 亚洲成人资源网| 欧美一区二区三区另类| 亚洲片在线观看| 国产在线精品自拍| 国产精品美女久久久久久免费 | 在线亚洲精品| 欲色影视综合吧| 国产精品久久久久毛片软件| 久热综合在线亚洲精品| 亚洲视频在线观看网站| 亚洲福利视频专区| 久久精品毛片| 亚洲午夜精品视频| 亚洲人成免费| 狠狠色综合网| 国产精品欧美一区喷水| 欧美成人免费一级人片100| 欧美在线视频导航| 午夜精品福利一区二区蜜股av| 日韩视频精品| 亚洲人成网站在线观看播放| 女主播福利一区| 麻豆国产精品777777在线|