UNIX下寫C
初寫:2003.03.25, 更新日期:2016.04.08
 
參考資料:曾聖超老師編著
 
在UNIX 或類UNIX(Ubuntu, Linux, FreeBSD等)系統中撰寫C程式,
是一件很容易的事,因為UNIX系統就是使用C語言製作的,
所以,C語言是Linux或類Unix系統下,是基本的工具程式。
 
  1. 登入(Login)後,才能開始我們今天的C程式。

    左上角的選單裡尋找 「 終端機(Terminal)模式 」。

  2. 建立一個/c 的目錄,並切換工作位置到此目錄下。

    建立c的目錄,是為了將所有我們寫作的C程式存放在裡面,
    而不會和其他的檔案散亂分佈在登入目錄之下,
    如果之後要作備份,也比較容易和方便。
    C10X@Ubuntu >mkdir c    建立一個 c 的目錄
    C10X@Ubuntu >cd c        切換工作位置到 /c 下

  3. 開啟 gedit 編輯器,編輯今天要做的程式檔案.
    其實,各程式語言的程式檔,都是文字檔.
    我們只需要使用能編輯純文字檔的軟體,基本上都可以來寫程式。
    早期,會要求同學使用所有Linux內建的vi 編輯器,或joe這類的軟體,
    因為許多同學仍習慣使用視窗介面的編輯軟體,所以老師這邊介紹gedit 給同學,
    是否跟記事本很像呢!而且功能很強,有支援關鍵字變色的功能。


    輸入Dennis Ritchie在他的著作C程式設計經典範例(Hello World的反思):
    #include <stdio.h>
    main()
    {
       printf("Hello World!");
    }

  4. 執行編譯 gcc  myfirstc.c
    gcc為C語言的編譯器,
    [語法]: gcc  -參數  filename  (詳細說明請輸入 man gcc)
    直接在Ubuntu系統下,執行gcc指令即可編譯程式.
    C10X@Ubuntu /c>gcc myfirstc.c
    C10X@Ubuntu /c>
    C10X@Ubuntu /c>ls
    a.out myfirstc.c
    會產生一個a.out的執行檔,
    在Linux下,編譯出來的c執行檔的是 a.out

    執行一下,請打./a.out( ./ 的意思是,請電腦到目前目錄下找)
    C10X@Ubuntu /c>./a.out
    Hello World!C10X@Ubuntu /c>

    上面是程式的輸出,但是否有點怪怪的!因為命令提示緊接著在輸出結果之後的關係。
    讓我們加上換行符號"\n"。
    請修改程式內容如下,且重新編譯一次試試,看結果如何!
    #include <stdio.h>
    main()
    {
       printf("Hello World!\n");
    }



※參考:gcc 編譯參數格式
gcc [option] filename

[option 參數功能]
-c : 只做編譯(不做連結)
-S : 輸出組譯碼
-E : 將預處理結果顯示
-o filename : 指定輸出檔名
-ansi : 程式要求依據ANSI C標準
-Dmacro : 使定義巨集(marco)為有效
-Dmarco=defn : 使定義巨集(marco)為defn
-Wa,option : 將選項(option)傳給組譯器
-wl,option : 將選項(option)傳給連結器
-I : 追加include檔案的搜尋路徑
-L : 追加library檔案的搜尋路徑
-l : 指定連結的函式庫
-Wall : 顯示所有的警告訊息
-g : 編入除錯資訊(欲使用GDB除錯必加)
-O2 : 做最佳化 


曾聖超老師製作