常見編譯錯誤(更新中 )

2021-08-28 21:42:10 字數 1119 閱讀 7950

#include

using namespace std;

int main()

1>------ 已啟動生成: 專案: hello1, 配置: debug win32 ------

1> hello1.cpp

1>msvcrtd.lib(crtexew.obj) : error lnk2019: 無法解析的外部符號 _winmain@16,該符號在函式 ___tmaincrtstartup 中被引用

1>e:\software\hello1\debug\hello1.exe : fatal error lnk1120: 1 個無法解析的外部命令

********** 生成: 成功 0 個,失敗 1 個,最新 0 個,跳過 0 個 **********

可能的原因

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

你用vc建了乙個控制台程式,它的入口函式應該是main, 而你使用了winmain.

你用vc開啟了乙個.c/.cpp 檔案,然後直接編譯這個檔案,這個檔案中使用了winmian而不是main作為入口函式。vc這時的預設設定是針對控制台程式的。根本就沒有winmain或main函式。

在vs中

win32 專案中應用程式的入口函式為 winmain (視窗應用程式的主函式).

win32控制台應用程式的入口函式為 main 函式,也就是普通的命令列應用程式的主函式。

所以在 win32專案中, 沒有寫 winmain 函式實現就會出現鏈結錯誤了。

同樣在 win32 控制台應用程式中, 沒有寫 main 函式的實現也會出現連線錯誤一樣。

解決方法

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

這裡選擇控制台(subsystem:console) 則表示此專案是win32控制台程式。

而選擇windows (/subsystem:windows) 則表示為 win32專案。

常見gcc編譯錯誤

wtype limits 出現 if p null 情況本應該是if p null 但是編譯器只會給出警告,而不是直接報錯,可以採用if null p 避免 unsigned char i for i 0 i 255 i 大部分只會給出警告 wreorder 定義變數和初始化變數順序不一致 wign...

VC 常見編譯錯誤

fatal error c1010 unexpected end of file while looking for precompiled header directive。尋找預編譯標頭檔案路徑時遇到了不該遇到的檔案尾。一般是沒有 include stdafx.h fatal error c10...

VS編譯錯誤彙總(持續更新中。。。。。)

解決辦法 在專案 屬性 配置屬性 常規 字符集中,將當前專案的字符集選項改為使用多位元組字符集。一般vs預設的字符集為unicode字符集 參考 解決辦法 在對應 位置,新增如下 ifdef cplusplus define stdc constant macros endif 解決辦法 在dark...