首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

C 語言主函數拼寫錯誤 mian 導致連接器報錯:entry point not found

     編輯:程式設計綜合問答

錯誤代碼

int mian() { // 拼寫錯誤:mian 而非 main
    // ...
}

編譯器/連接器報錯


# GCC/Clang
undefined reference to `main'
# MSVC
LNK2019: unresolved external symbol main referenced in function "int __cdecl invoke_main(void)"
# 運行時 (極少見編譯通過)
entry point not found

原因

C 標準規定程序入口為 `main` (或受限環境的 `WinMain`/`wWinMain`/`DllMain`)。連接器在構建可執行文件時尋找 `main` 符號作為入口點,**拼寫錯誤導致符號缺失**,連接階段失敗。

標準 main 簽名

簽名標準說明
`int main(void)` C89/C99/C11/C18 無參數,推薦
`int main(int argc, char *argv[])` C89/C99/C11/C18 命令行參數:`argc` 參數個數,`argv` 參數字符串數組
`int main(int argc, char **argv)` 等價 同上
`void main()` **非標準** 部分編譯器兼容,但返回值丟失,嵌入式/舊教材常見,請避免

快速自查清單

  1. 拼寫:`main` 而非 `mian`/`mian()`/`Main`/`MAIN`。
  2. 返回類型:`int` (而非 `void`)。
  3. 參數:`void` 或 `int argc, char *argv[]`。
  4. 大小寫敏感:C 區分大小寫。
  5. 僅一個 `main`:全項目只能有一個入口函數。

IDE 提示技巧

  • VS Code + C/C++ Extension:輸入 `main` 觸發片段自動補全標準簽名。
  • CLion / Visual Studio:新建項目自動生成正確 `main`。
  • 編譯旗標 `-Wall -Wextra -pedantic` 會警告非標準 `main`。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved