1. 程式人生 > >vc平臺下 解決外部符號錯誤:_main,[email protected],__b

vc平臺下 解決外部符號錯誤:_main,[email protected],__b

不過應該先檢查一下自己是否有拼寫錯誤!!尤其是main和WinMain 

解決外部符號錯誤:_main,[email protected],__beginthreadex
在建立MFC專案時, 不使用MFC AppWizard嚮導, 如果沒有設定好專案引數, 就會在編譯時產生很多連線錯誤, 如error LNK2001錯誤, 典型的錯誤提示有:
libcmtd.lib(crt0.obj) : error LNK2001: unresolved external symbol _main
LIBCD.lib(wincrt0.obj) : error LNK2001: unresolved external
symbol [email protected] msvcrtd.lib(crtexew.obj) : error LNK2001: unresolved external symbol [email protected] nafxcwd.lib(thrdcore.obj) : error LNK2001: unresolved external symbol __beginthreadex nafxcwd.lib(thrdcore.obj) : error LNK2001: unresolved external symbol __endthreadex
1. Windows子系統設定錯誤, 提示:
libcmtd.lib(crt0.obj) : error
LNK2001: unresolved external symbol _main


Windows專案要使用Windows子系統, 而不是Console, 可以這樣設定:

[Project] --> [Settings] --> 選擇"Link"屬性頁,
在Project Options中將/subsystem:console改成/subsystem:windows


2. Console子系統設定錯誤, 提示:
LIBCD.lib(wincrt0.obj) : error LNK2001: unresolved external symbol [email protected] 


控制檯專案要使用Console子系統, 而不是Windows, 設定:

[Project] --> [Settings] --> 選擇"Link"屬性頁,
在Project Options中將/subsystem:windows改成/subsystem:console


3. 程式入口設定錯誤, 提示:
msvcrtd.lib(crtexew.obj) : error LNK2001: unresolved external symbol [email protected]  


通常, MFC專案的程式入口函式是WinMain, 如果編譯專案的Unicode版本, 程式入口必須改為wWinMainCRTStartup, 所以需要重新設定程式入口:

[Project] --> [Settings] --> 選擇"Link"屬性頁,
在Category中選擇Output,
再在Entry-point symbol中填入wWinMainCRTStartup, 即可


4. 執行緒執行時庫設定錯誤, 提示:
nafxcwd.lib(thrdcore.obj) : error LNK2001: unresolved external symbol __beginthreadex   
nafxcwd.lib(thrdcore.obj) : error LNK2001: unresolved external symbol __endthreadex 


這是因為MFC要使用多執行緒時庫, 需要更改設定:

[Project] --> [Settings] --> 選擇"C/C++"屬性頁,
在Category中選擇Code Generation,
再在Use run-time library中選擇Debug Multithreaded或者multithreaded

其中,
Single-Threaded 單執行緒靜態連結庫(release版本)
Multithreaded 多執行緒靜態連結庫(release版本)
multithreaded DLL 多執行緒動態連結庫(release版本)
Debug Single-Threaded 單執行緒靜態連結庫(debug版本)
Debug Multithreaded 多執行緒靜態連結庫(debug版本)
Debug Multithreaded DLL 多執行緒動態連結庫(debug版本)


單執行緒: 不需要多執行緒呼叫時, 多用在DOS環境下
多執行緒: 可以併發執行
靜態庫: 直接將庫與程式Link, 可以脫離MFC庫執行
動態庫: 需要相應的DLL動態庫, 程式才能執行
release版本: 正式釋出時使用
debug版本: 除錯階段使用

相關推薦

vc平臺 解決外部符號錯誤:_main,<a href="/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="9dc2caf4f3d0fcf4f3ddacab">[email&#160;protected]a>,__b

不過應該先檢查一下自己是否有拼寫錯誤!!尤其是main和WinMain  解決外部符號錯誤:_main,[email protected],__beginthreadex在建立MFC專案時, 不使用MFC AppWizard嚮導, 如果沒有設定好專案引數, 就會在

error lnk2001無法解析的外部符號_main 無法解析的外部符號<a href="/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="de8189b7b093bfb7b09eefe8">[email&#160

這個問題表明你新建的是一個main型別函式(控制檯程式),而你的程式中有視窗程式,顯然是個win32函式,解決方法:專案-屬性-連結器-系統-子系統-把控制檯該為windows剛學WinAPI編譯遇到不少問題,LNK2019: 無法解析的外部符號 _main,該符號在函式 ___tmainCRTStartup

無法解析的外部符號 <a href="/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="1e41497770537f77705e2f28">[email&#160;protected]a>,該符號在函式 ___tmai

#include using namespace std; int main() { cout <<“This is a C++ program.”; return 0; } 1>------ 已啟動生成: 專案: hello1, 配置: Debug Win32 ---

VS2015 error LNK2019 無法解析的外部符號 <a href="/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="19464e70775478707759282f">[email&#160;protecte

前言 上一篇文章中,為了編譯OpenCV的示例程式碼,然後搭建環境, 最後想直接執行示例demo,我在建立新工程的時候,直接建立了一個win32視窗專案,然後環境配置完成後,將opencv 的示例程式碼kalman.cpp直接匯入到新建的vs工程中進行編譯,直接報錯: 錯誤 LN

error LNK2019: 無法解析的外部符號 <a href="/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="702f031f131b1504304142">[email&#160;protected]a>,該

Reason: 學習使用socket,在stdafx.h檔案加了#include ,編譯 #include "stdafx.h" #include   using namespace std;   int _tmain(int argc

【C++】error LNK2019: 無法解析的外部符號 <a href="/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="a6f9f1cfc8ebc7cfc8e69790">[email&#160;protected

原因:c語言執行時找不到適當的程式入口函式 解決:對於控制檯應用程式 1.選單中選擇 Project->Properties, 彈出Property Pages視窗 2.在左邊欄中依次選擇:Configuration Properties->C/C++->

錯誤解決辦法:<a href="/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="722d283c21133b11373643370432">[email&#160;protected]a>@GLIBCXX_3.4

  使用gcc編譯,產生錯誤如下: /usr/bin/ld: gh_datacenter.o: undefined reference to symbol '[email protected]@GLIBCXX_3.4' //usr/lib/x86_64-linux-gnu/libstd

windows程式設計原始碼:無法解析的外部符號 <a href="/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="0956566064795656596568705a667c676d5e49383b">[email&#

     作者:mickole 出處:http://www.cnblogs.com/mickole/   windows程式設計原始碼在vs2015上執行出現: 無法解析的外部符號 [email protected] 1>HelloWi

MingW/codeblocks <a href="/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="c691958795b2a7b4b2b3b686fe">[email&#160;protected]a>報錯的解決

socket程式設計時出現如下的error: ||=== 生成: Debug in ccc (compiler: GNU GCC Compiler) ===| obj\Debug\main.o||In function `[email protected]':|

LinuxMakefile的編寫及四個特殊符號的意義@、<a href="/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="062246">[email&#160;protected]a>、$^、$

我們先看三段C++程式: 一、line1的原始碼 line1.h #ifndef _LINE_1_H #define _LINE_1_H void line1_print(const char *strMsg); #endif line1.cpp #includ

無法解析的外部符號 <a href="/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="c29da1b7a0aea3b1a1b0a7a3b6a79db4f082f6">[email&#160;protected]a>,

首先貼出我的問題,解決的就是這個問題。要解決這個問題,首先要看你的cuda環境配置的是否正確,那麼就要從頭跟著我們走一遍,再檢查一下您配置的是否正確。1>1.cu.obj : error LNK2019: 無法解析的外部符號 cublasDestroy_v2,該符號在函

無法解析的外部符號 <a href="/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="38674c6f51567559515678090e">[email&#160;protected]a>

無法解析的外部符號 [email protected] 編譯出下如下錯誤: error LNK2019: 無法解析的外部符號 [email protected],該符號在函式 __

error LNK2019: 無法解析的外部符號 <a href="/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="0e515167637e51515e626f775d617b606a4f4e3f3c">[email&#

http://bbs.csdn.net/topics/290079391 原始檔頂端新增 #pragma comment(lib, "winmm") PlaySound這個函式在Winmm.lib這個庫中,當然需要連結它。 另一種方法是: 選單Project --&g

解決碼雲出現<a href="/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="3b5c524f7b5c524f5e5e15585456">[email&#160;protected]a>: Permission de

很久之前好像改了ssh的一些配置,導致現在對git進行一些操作時,就會出現  當時就去百度,結果很多都是一些不太對應的解決方法,反正也沒有解決,今天偶然看碼雲的文件才突然解決。 官方解決文件:  http://git.mydoc.io/?t=154712 1)、重新生成

解決碼雲 <a href="/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="d3b4baa793b4baa7b6b6fdb0bcbe">[email&#160;protected]a>: Permission den

 Git 操作碼雲專案出現問題:  [email protected]: Permission denied (publickey)  小烏龜(TortoiseGit)出現問題: Disconected: No supported au

【轉載】解決方案:<a href="/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="2f48465b6f48465b475a4d014c4042">[email&#160;protected]a>出現Permissi

遇到的問題 今天心血來潮,想將intellij上的專案程式碼放到GitHub上管理。 在進行新增遠端庫的時候,出現了:[email protected]出現Permission denied (publickey) 原因是 ./ssh目錄預設在C:\Users\VULCAN\.ssh,而我

解決碼雲 <a href="/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="711618053116180514145f121e1c">[email&#160;protected]a>: Permission den

 Git 操作碼雲專案出現問題:  [email protected]: Permission denied (publickey)  小烏龜(TortoiseGit)出現問題: Disconected: Nosupported authentication me

解決<a href="/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="4d3f2222390d21222e2c2125223e39">[email&#160;protected]a>'s password:local

第一種原因:是當前的登陸密碼識別無效 背景:在裝完的Hadoop及JDK之後,在執行start-all.sh的時候出現            root @ localhost的密碼:localhos

Linux$#,$0,$1,$2,$3,<a href="/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="bc98fc">[email&#160;protected]a>,$*,$$,$?代表的含義

$# :傳給指令碼的引數個數; $0 :指令碼名稱; $n :n為數字,代表傳給指令碼的第n個引數; [email protected] :引數列表; $* :也是顯示引數列表,與上一條命