程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++基礎知識 >> 如何運行C++程序

如何運行C++程序

編輯:C++基礎知識
C++ 和C語言類似,也要經過編譯和鏈接後才能運行。在《C語言入門教程》中我們講到了 C-Free、VC 6.0、VS、GCC、Xcode 等常見 IDE 或編譯器,它們除了可以運行C語言程序,還可以運行 C++ 程序,步驟是類似的,讀者需要留意的是 C++ 源文件的後綴,以及 GCC 中的g++命令。

下圖是 C/C++ 代碼生成可執行文件的過程:

C++源文件的後綴

C語言源文件的後綴非常統一,在不同的編譯器下都是.c。C++源文件的後綴則有些混亂,不同的編譯器支持不同的後綴,下表是一個簡單的匯總:
編譯器 Microsoft Visual C++ GCC(GNU C++) Borland C++ UNIX 後綴 cpp、cxx、cc cpp、cxx、cc、c++、C cpp C、cc、cxx
UNIX 是昂貴的商業操作系統,初學者幾乎用不到;Microsoft Visual C++ 是微軟的 C/C++ 編譯器,VC 6.0、VS 都使用該編譯器。我推薦使用.cpp作為 C++ 源文件的後綴,這樣更加通用和規范。

g++ 命令

有了C語言開發經驗,在 VC/VS、C-Free、Xcode 等常見 IDE 下編譯 C++ 程序易如反掌,只要把源文件的後綴設置為.cpp即可,相信各位讀者都能夠毫無障礙地駕馭。本節我們重點介紹 Linux GCC 的使用。

在C語言中,我們使用gcc命令來編譯和鏈接C程序。例如編譯單個源文件:

gcc main.c

編譯多個源文件:

gcc main.c module.c

編譯C++程序時,gcc命令也可以使用,不過要增加-lstdc++選項,否則會發生鏈接錯誤。例如編譯單個源文件:

gcc main.cpp -lstdc++

編譯多個源文件:

gcc main.cpp module.cpp -lstdc++

gcc命令在鏈接時默認使用C的庫,只有添加了-lstdc++選項才會使用 C++ 的庫。

不過 GCC 中還有一個g++命令,它專門用來編譯 C++ 程序,廣大 C++ 開發人員也都使用這個命令。g++命令和gcc命令的用法如出一轍,例如編譯單個源文件:

g++ main.cpp

編譯多個源文件:

g++ main.cpp module.cpp

使用-o選項可以指定可執行文件的名稱:

g++ main.cpp -o demo
./demo


要想理解g++命令,我們得從 GCC 的歷史談起。GCC 是由 GUN 組織開發的,最初只支持C語言,是一個單純的C語言編譯器,後來 GUN 組織傾注了更多的精力,使得 GCC 越發強大,增加了對 C++、Objective-C、Fortran、Java 等其他語言的支持,此時的 GCC 就成了一個編譯器套件(套裝),是所有編譯器的總稱。

在這個過程中,gcc命令也做了相應地調整,它不再僅僅支持C語言,而是默認支持C語言,增加參數後也可以支持其他的語言。也就是說,gcc是一個通用命令,它會根據不同的參數調用不同的編譯器或鏈接器。

但是讓用戶指定參數是一種不明智的行為,不但增加了學習成本,還使得操作更加復雜,所以後來 GCC 又針對不同的語言推出了不同的命令,例如g++命令用來編譯 C++,gcj命令用來編譯 Java,gccgo命令用來編譯Go語言。

在以後使用 Linux GCC 時,我推薦使用g++命令來編譯 C++ 程序,這樣更加簡潔和規范。
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved