C++ 和C語言相似,也要通過編譯和連接後才能運行。在《C語言編譯器》專題中咱們講到了 VS、Dev C++、VC 6.0、Code::Blocks、C-Free、GCC、Xcode 等常見 IDE 或編譯器,它們除了能夠運行C語言程序,還能夠運行 C++ 程序,步驟是同樣的,這裏再也不贅述,讀者須要留意的是 C++ 源文件的後綴,以及 GCC 中的g++命令。c++
UNIX 是昂貴的商業操做系統,初學者幾乎用不到;Microsoft Visual C++ 是微軟的 C/C++ 編譯器,VC 6.0、VS 都使用該編譯器。我推薦使用.cpp做爲 C++ 源文件的後綴,這樣更加通用和規範。
g++ 命令
有了C語言開發經驗,在 VS、Dev C++、VC6.0、C-Free、Xcode 等常見 IDE 下編譯 C++ 程序易如反掌,只要把源文件的後綴設置爲.cpp便可,相信各位讀者都可以毫無障礙地駕馭。本節咱們重點介紹 Linux GCC 的使用。學習
在C語言中,咱們使用gcc命令來編譯和連接C程序。例如編譯單個源文件:
gcc main.cspa
編譯多個源文件:
gcc main.c module.c操作系統
編譯C++程序時,gcc命令也可使用,不過要增長-lstdc++選項,不然會發生連接錯誤。例如編譯單個源文件:
gcc main.cpp -lstdc++code
編譯多個源文件:
gcc main.cpp module.cpp -lstdc++blog
gcc命令在連接時默認使用C的庫,只有添加了-lstdc++選項纔會使用 C++ 的庫。開發
不過 GCC 中還有一個g++命令,它專門用來編譯 C++ 程序,廣大 C++ 開發人員也都使用這個命令。g++命令和gcc命令的用法一模一樣,例如編譯單個源文件:
g++ main.cpp編譯器
編譯多個源文件:
g++ main.cpp module.cppit
使用-o選項能夠指定可執行文件的名稱:
g++ main.cpp -o demo
./demo編譯
要想理解g++命令,咱們得從 GCC 的歷史談起。GCC 是由 GUN 組織開發的,最初只支持C語言,是一個單純的C語言編譯器,後來 GNU 組織傾注了更多的精力,使得 GCC 愈加強大,增長了對 C++、Objective-C、Fortran、Java 等其餘語言的支持,此時的 GCC 就成了一個編譯器套件(套裝),是全部編譯器的總稱。
在這個過程當中,gcc命令也作了相應地調整,它再也不僅僅支持C語言,而是默認支持C語言,增長參數後也能夠支持其餘的語言。也就是說,gcc是一個通用命令,它會根據不一樣的參數調用不一樣的編譯器或連接器。
可是讓用戶指定參數是一種不明智的行爲,不但增長了學習成本,還使得操做更加複雜,因此後來 GCC 又針對不一樣的語言推出了不一樣的命令,例如g++命令用來編譯 C++,gcj命令用來編譯 Java,gccgo命令用來編譯Go語言。
在之後使用 Linux GCC 時,我推薦使用g++命令來編譯 C++ 程序,這樣更加簡潔和規範。