本節將在 CentOS 系統下(Linux 發行版之一),為讀者演示如何使用 g++ 命令執行 C++ 程式。除此之外,Linux 平台上還經常編寫 makefile 來執行規模較大的 C++ 專案。關於 makefile,讀者可閱讀《Makefile教學:Makefile檔案編寫1天入門》專題做詳細了解。
[[email protected] ~]# which g++
/usr/bin/g++
yum install gcc-c++
注意,該命令執行時可能會提示“你需要以 root 許可權執行此命令”,這種情況下可以輸入su
命令,然後輸入 root 使用者的登陸密碼,再次執行安裝指令即可成功安裝。//student.h class Student { public: const char *name; int age; float score; void say(); }; //student.cpp #include <iostream> //std::cout、std::endl #include "student.h" //Student void Student::say() { std::cout << name << "的年齡是" << age << ",成績是" << score << std::endl; } //main.cpp #include "student.h" //Student int main() { Student *pStu = new Student; pStu->name = "小明"; pStu->age = 15; pStu->score = 92.5f; pStu->say(); delete pStu; //刪除物件 return 0; }該專案正確的執行結果為:
小明的年齡是15,成績是92.5
[[email protected] ~]# g++ -E main.cpp -o main.i
[[email protected] ~]# g++ -E student.cpp -o student.i
感興趣的讀者可自行執行
cat main.i
指令檢視 main.i 檔案中的內容(student.i檔案也可以用此方式檢視)。
[[email protected] ~]# g++ -S main.i -o main.s
[[email protected] ~]# g++ -S student.i -o student.s
[[email protected] ~]# g++ -c main.s -o main.o
[[email protected] ~]# g++ -c student.s -o student.o
[[email protected] ~]# g++ main.o student.o -o student.exe
注意,如果不用 -o 指定可執行檔案的名稱,預設情況下會生成 a.out 可執行檔案。Linux 系統並不以檔案的擴充套件名開分割區檔案型別,所以 a.out 和 student.exe 都是可執行檔案,只是檔名稱有區別罷了。經歷以上 4 步,最終會生成 student.exe 可執行檔案,其執行結果為:以上 4 個階段中,檔案的生成不分先後,只要保證所有原始檔都得到處理即可。
[[email protected] ~]# ./student.exe
小明的年齡是15,成績是92.5
注意“./”表示當前目錄,不能省略。
[[email protected] ~]# g++ main.cpp student.cpp -o student.exe
[[email protected] ~]# ./student.exe
小明的年齡是15,成績是92.5
強烈建議初學者學會使用前一種“繁瑣”的執行方式,因為它有利於你更深入地了解 C++ 程式的執行過程。