C 語言程式設計教學:在 GNU/Linux 下寫 C 程式

PUBLISHED ON MAY 24, 2018 — PROGRAMMING
FacebookTwitter LinkedIn LINE Skype EverNote GMail Email Email

    雖然 GNU/Linux 在桌面市佔率低,但 GNU/Linux 的應用相當廣泛,從嵌入式裝置 (embedded devices)、Android 手機、伺服器 (servers)、超級電腦 (supercomputers) 等都可以看到 GNU/Linux 的踪跡。近年來 GNU/Linux 在桌面端較先前改善,也有一些程式人用 GNU/Linux 當成開發機。由於 GNU/Linux 是類 Unix 系統,對 C 語言支援相當良好。

    GNU/Linux 對程式設計方面的支援相當良好,但要上手的前置知識較多,筆者也無法在短短一篇文章內說明如何使用 GNU/Linux,請讀者自行找尋相關資料 (像是 Linux Journeytutorialspoint 的教程鳥哥的 Linux 私房菜等)。筆者在這裡唯一的建議就是:先在虛擬機器上嘗試 GNU/Linux。每隔一陣子,筆者就會在國內外 GNU/Linux 討論區看到某個初學者興沖沖地安裝了某個 GNU/Linux 發行版,結果無法正常開機或是資料被洗掉的慘劇,一個 GNU/Linux 的生力軍就此陣亡。

    由於 GNU/Linux 發行版眾多,筆者也無法一一展示不同發行版下的相關流程,筆者在這裡僅選擇在 DEB 和 RPM 體系具有代表性的 Ubuntu 和 Fedora 為例,說明相關流程。

    在 GNU/Linux 上,最常用的 C 編譯器是 GCC,但若想使用 Clang 也未嘗不可。本文假設讀者使用 GCC。

    在 Debian/Ubuntu/Linux Mint 上安裝 GCC 及相關開發工具的指令如下:

    $ sudo apt-get install build-essential
    

    在 Red Hat/Cent OS/Fedora 上安裝 GCC 及相關開發工具的指令如下:

    $ sudo yum groupinstall "Development Tools"
    

    早期的 Unix 文化鼓勵使用各種不同的終端機工具,包括 Vim 或 Emacs 等,而不會用大而全的 IDE,不過,近年來也有一些在 GNU/Linux 上運行的 IDE,一些實例如下:

    對於初心者來說,使用 IDE 可以省下撰寫專案設定檔 (Makefile 等) 的心力,將心思專注在學習語法上。使用 Code::Blocks 等跨平台 IDE 可以省下重學新的 IDE 的心力。我們這裡以 Anjuta 為例,說明如何用 IDE 寫 C 程式。

    在語言類別中選 C 語言,選擇「Generic (Minimal)」:

    Anjuta 選擇專案類型

    設定專案相關資訊:

    Anjuta 設定專案相關資訊

    設定專案位置、授權和其他資訊:

    Anjuta 設定專案位置和授權

    確認專案設定正確與否:

    Anjuta 確認相關資訊

    開始編輯 C 程式碼:

    Anjuta 編輯器

    我們這裡展示 Hello World 程式,暫時不要管程式碼的意義,這裡的重點是確保程式可順利運行:

    #include <stdio.h>
    
    int main()
    {
        printf("Hello World\n");
        
        return 0;
    }
    

    如果使用 IDE 的讀者,選取執行 (Run) 或等效的指令即可執行。如果使用編輯器的讀者,可參考以下終端機指令:

    $ gcc -o hello hello.c
    $ ./hello
    Hello World
    

    如果程式順利執行,代表環境建置成功。若執行失敗,則需根據錯誤訊息來處理。

    對於初期的練習,使用上述方法應該足夠。但若讀者在終端機環境中編譯 C 程式碼,久了應該會覺得反覆打指令很費時;我們將在後文介紹 make(1),這是一個知名的流程自動化軟體,可以減輕我們的工作量。