首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> C++ >> C++ 基礎

如何編譯執行 C++ 程式

     編輯:C++ 基礎

源文件副檔名

編譯器支援副檔名推薦
MSVC (VC6/VS).cpp, .cxx, .cc.cpp
GCC (g++).cpp, .cxx, .cc, .c++, .C.cpp
Borland C++.cpp.cpp
UNIX CC.C, .cc, .cxx.cc

統一建議:使用 .cpp,通用性最佳。

主流 IDE 一鍵建置

  • Visual Studio:建立 C++ 專案,Ctrl+F5 執行。
  • VS Code + C/C++ 擴充:tasks.json 設定 g++ 或 cl.exe。
  • CLion / Qt Creator / Code::Blocks / Dev-C++:內建專案模板,自動偵測編譯器。

命令列:GCC (g++) 詳解

為什麼要 g++ 而非 gcc?

  • gcc 是駕駛程式,根據副檔名/參數決定語言前端。
  • gcc main.cpp 會編譯但**連結失敗**(預設連結 C 庫,缺 C++ 標準庫)。
  • gcc main.cpp -lstdc++ 可行但繁瑣。
  • g++ 專門針對 C++:預設連結 libstdc++,預設啟用 C++ 標準庫頭文件搜尋路徑。

常用指令

# 單檔編譯執行
g++ main.cpp -o main
./main

# 多檔編譯
g++ main.cpp utils.cpp -o app

# 指定 C++ 標準
g++ -std=c++17 main.cpp -o main

# 開啟警告(強烈建議)
g++ -Wall -Wextra -pedantic main.cpp -o main

# 最佳化等級
g++ -O2 main.cpp -o main  # 發布版
g++ -O0 -g main.cpp -o main # 除錯版

編譯流程圖解

graph LR
    A[main.cpp] --> B[預處理器 cpp]
    B --> C[編譯器 cc1plus]
    C --> D[組譯器 as]
    D --> E[目標檔 main.o]
    F[utils.cpp] --> B
    E --> G[連結器 ld]
    G --> H[可執行檔 main.exe / a.out]
  • 預處理:展開 #include、#define、條件編譯。
  • 編譯:C++ → 組合語言。
  • 組譯:組合語言 → 機器碼(目標檔 .o/.obj)。
  • 連結:合併目標檔與庫,解析符號,產出可執行檔。

常見錯誤與對策

錯誤原因解決
undefined reference to `std::cout'用 gcc 未連結 stdc++改用 g++ 或加 -lstdc++
fatal error: iostream: No such file缺 C++ 標準庫開發套件安裝 libstdc++-dev / build-essential / VS Build Tools
main.cpp:5: error: expected ';'語法錯誤檢查行尾分號、括號匹配
multiple definition of `func'函數定義在頭文件且多檔包含函數定義移至 .cpp,或加 inline/static

總結

  • 副檔名用 .cpp。
  • 命令列首選 g++,加 -std=c++17、-Wall -Wextra。
  • 理解「編譯→組譯→連結」四階段,能精準定位錯誤階段。
  • IDE 只是包裝命令列,掌握底層指令才能應對複雜建置需求。
  1. 上一篇文章:
  2. 下一篇文章:
  • --热点文章
  • Copyright © 程式碼之家 All Rights Reserved