1. 程式人生 > >【Link】無法解析的外部符號 [email protected],該符號在函式 _

【Link】無法解析的外部符號 [email protected],該符號在函式 _

###Date: 2017/11/6

一、問題

#include<iostream>
using namespace std;
int main()
{
	cout <<"This is a C++ program.";
	return 0;
}


二、可能原因

      產生這個問題的真正原因是c語言執行時找不到適當的程式入口函式,一般情況下,如果是windows程式,那麼WinMain是入口函式,如果是dos控制檯程式,那麼main是入口函式,而如果入口函式指定不當,很顯然c語言執行時找不到配合函式,它就會報告錯誤。

可能:

1. 你用vc建了一個控制檯程式,它的入口函式應該是main, 而你使用了WinMain.

2. 你用vc打開了一個.c/.cpp 檔案,然後直接編譯這個檔案,這個檔案中使用了WinMian而不是main作為入口函式。vc這時的預設設定是針對控制檯程式的。

3.根本就沒有WinMain或Main函式。

在VS內

Win32 專案中應用程式的入口函式為 WinMain (視窗應用程式的主函式).
而 Win32控制檯應用程式的入口函式為 main 函式,也就是普通的命令列應用程式的主函式。

所以在 Win32專案中, 沒有寫 WinMain 函式實現就會出現連結錯誤了。
同樣在 Win32 控制檯應用程式中, 沒有寫 main 函式的實現也會出現連線錯誤一樣。

三、根本原因

配置相關引數:

      專案——> 專案屬性——> 配置屬性——> 連結器——> 系統——> 子系統

這裡選擇控制檯(SUBSYSTEM:CONSOLE)  則表示此專案是WIN32控制檯程式。

而選擇Windows (/SUBSYSTEM:WINDOWS) 則表示為 WIN32專案。