C++ 入門指南

單元 2 - 如何編譯與執行

我們先看到以下

原始碼 → 編譯器 → 應用程式

原始碼 (source code) 檔案就是我們寫程式 (program) 所用的 .cpp 檔案,原始碼檔案經過編譯器 (compiler) 編譯 (compile) 後就是可執行的程式檔案,然後在透過作業系統啟動程式執行。

我們提供的簡單範例的程式原始碼如下

// 引入標準程式庫中相關的輸入、輸出程式
#include <iostream>
// 引入標準程式庫中相關的字串程式
#include <string>

// std 為標準程式庫的命名空間
using namespace std;

int main(void) {
    // 下面建立名稱為 m , string 型態的物件
    // 小括弧為 string 的建構子,雙引號為字串字面常數
    string m("There is no spoon.");

    // cout 用來輸出的物件, endl 為新行符號 '\n'
    cout << endl << m << endl << endl << endl;

    // 最後回傳 0 給作業系統
    return 0;
}

/* 《程式語言教學誌》的範例程式
   https://kaiching.org/
   檔名:demo.cpp
   功能:示範簡單的 C++ 程式
   作者:張凱慶 */

我們使用跨平台的編譯器 GCC 及 Visual Studio Code ,於 Windows 、 Mac 或 Linux 的編譯結果都應一致。於 Visual Studio Code 利用指令 g++ 的編譯結果如下

-code_runner7-

UNIX-Like 作業系統如 Linux 、 Mac 等都已經預設安裝好 GCC , Windows 可安裝 MinGW 或 Cygwin ,兩者是 GCC 在 Windows 的安裝檔專案,詳細安裝與設定可參考 C++ 開發環境 - 在 Windows 10 中安裝 MinGW 及設定環境變數

Visual Studio Code 需要安裝 C++ 及 Code Runner 的 extension , C++ 的 extension 在偵測到 C++ 檔案就會建議安裝,至於安裝 Code Runner 的 extension 請參考 C++ 開發環境 - 在 Visual Studio Code 安裝 Code Runner

編譯完成,相同目錄下會產生 demo.exe 檔案

-demoexe-

因為 Code Runner 的編譯指令加上了 -o dmeo ,參數 -o 後面接的是編譯輸出的執行程式檔名。

g++ 指令預設編譯輸出檔名為 a ,多數 UNIX-Like 作業系統預設輸出檔為 a.out , Windows 系統則是 a.exe

實際運用 Visual Studio Code 連帶需要懂得一些命令列的操作,往後也需要切換到 TERMINAL 頁籤進行編譯工作, TERMINAL 也就是運用 Windows PowerShell 操作檔案,有關 Windows PowerShell 的基本操作,請參考 C++ 開發環境 - Windows PoeweShell 簡易教學,至於如果想要直接在 Windows PowerShell 編譯並執行 C++ 程式,請參考 C++ 開發環境 - 在 Windows PowerShell 編譯 C++ 程式

在 Windows 系統快速點擊兩次編譯好的應用程式圖示就可以執行程式,但是由於命令列程式啟動 Windows PowerShell 就會直接結束視窗,因此需要額外加入暫停程式執行的程式碼,請參考 C++ 開發環境 - 在 Windows 中點擊兩下執行程式

此程式沒有用到太多 C++ 的特性,僅利用 string 型態 (type)建構函數 (constructor) 建立字串 (string) 物件 (object) ,然後利用標準程式庫 (standard library) iostreamcout 物件輸出字串到螢幕上。

接下來,我們們會陸續探討 C++ 語言的諸多細節,先來看看基本內建型態 (primitive built-in type) 與物件吧!

中英文術語對照
原始碼 source code
程式 program
編譯器 compiler
編譯 compile
型態 type
建構函數 constructor
字串 string
物件 object
標準程式庫 standard library
基本內建型態 primitive built-in type
重點整理
1. GCC 為跨平台的編譯器,編譯 C++ 程式的指令為 g++
2. C++ 程式編譯成功,會產生系統的執行檔。
3. 執行編譯完成的程式,於命令列輸入檔名即可。
問題與討論
1. 編譯與直譯的差別在哪裡?編譯的程式語言相較直譯的程式語言有什麼優點及缺點?
2. 於 Windows 編譯的執行檔可以拿到 Mac 執行嗎?
練習
1. 於命令列重新編譯 demo.cpp ,加上參數 o 與指定輸出檔名。
2. 編譯「單元 1 」練習的 demo2.cpp ,並執行程式,比較與 demo.cpp 的編譯執行結果有何不同?
3. 同上,改成編譯 demo3.cpp
4. 同上,改成編譯 demo4.cpp
5. 同上,改成編譯 demo5.cpp

上一頁 單元 1 - 認識 C++ 語言
回 C++ 入門指南目錄
下一頁 單元 3 - 基本內建型態與物件
回 C++ 教材
回程式語言教材首頁