你會用電腦說 C 語言嗎?

又到了開學季,在台大唸碩士班的兩年中,我擔任了「計算機程式設計」的助教工作(詳情可以從「好人助教傳1」開始閱讀 XD),這門課剛開始總要教大家學習著使用編譯器(Compiler)或是整合式開發環境(IDE),今天剛好想到可以整理一下過去寫過的文章,然後推出新的版本!

本文參考自:這裡。(其實作者也是我 XD)歡迎轉錄,但請務必註明出處及作者 🙂

在這篇文章裡,我只打算介紹 Windows 及 Mac 環境下的 how-to,因為我相信會用 Linux/Unix-like 系統的人應該對 compile 這件事不會不熟悉吧!(其實只是筆者偷懶,手邊又剛好沒有 Linux 的系統 orz)

如果你使用 Windows
這裡我將介紹三種方法:連到工作站使用 Dev-C++使用 Microsoft Visual C++ 2005 Express Edition

  • 到工作站上寫程式並編譯執行:

    如果你有一個 Unix-like 的工作站可以使用,那你或許可以考慮使用 PieTTY 來連線到工作站上寫程式,以下是簡單的步驟:

    1. 連上工作站後:

      先確定工作站上有沒有安裝 gcc 這個程式, gcc 是一個廣為大家所使用的 C/C++ 編譯器(新的版本甚至可以說是 GNU 編譯器的集合),你可以直接輸入 gcc -v 來看一下是否可以執行,並且確定你使用的版本。

    2. 用文字編譯器撰寫程式碼:

      用 joe 文字編輯器開啟檔案

      上圖是使用 joe 這個文字編輯器開啟一個名為 test.c 的檔案,除了 joe 以外,你當然可以選擇你喜愛的文字編輯器(如:vim)。

      用 joe 寫程式碼,並開啟選單。
      點圖放大

      打好你的程式碼之後,你可以在 joe 裡按下 CTRL+k 來叫出選單,選單中的 ^ 符號就是代表鍵盤上的 CTRL 鍵。

    3. 編譯(compile)程式:

      結束編輯後,你就可以使用 gcc 來把這個程式碼編譯成執行檔了,方法很簡單,就是在命令列下輸入: gcc < 你的程式碼檔名> 即可,如圖所示:

      gcc compile

      如果你的程式碼有錯誤(比方說 printf 打成 prinf ),當 gcc 在編譯你的程式時就會抱怨,有圖有真相:

      gcc 錯誤訊息

    4. 執行程式:

      當 gcc 沒有抱怨時,表示你已經成功地將程式碼編譯成可以執行的程式,而 gcc 預設產生的執行檔名稱叫作 a.out ,在同一個目錄下要執行它,就在命令列中輸入: ./a.out 就可以執行了!

      執行程式

      如果你不喜歡 a.out 這個執行檔名,那就在使用 gcc 的時候,加入一個 -o 的選項,後面再接希望輸出的名稱即可。如: gcc test.c -o test ,這樣產生的執行檔就會名為 test 而不是 a.out 了。

  • 使用 Dev-C++

    Dev-C++是 Windows 作業系統下一個免費的 C/C++ 整合型開發環境,而且也有做了不錯的國際化,如果使用者願意也可以將功能表選單等等介面改成中文化的介面。而且它使用的 compiler 也是 gcc 這個 project (由 Mingw 移植的 Windows 版本),所以也值得為各位作個介紹。

    1. 下載 Dev-C++ 及安裝:

      先到官方網站下載 Dev-C++,記得要下載 with MinGW/GCC 的版本。下載完後直接執行它就可以進行安裝了。

    2. 設定 Dev-C++:

      執行 Dev-C++ 後,如果你是第一次執行,則它會一步步詢問你要怎麼設定整個環境,如果你以後還想更改像介面這類的設定,可以到 Tools -> Environment Options 裡作更改:

      設定 Dev-C++ 用中文介面

      然後在 Interface 的分頁中選擇你想要更改的語言,以及更改你喜歡的選項:

      改成中文介面

    3. 建立專案及撰寫原始碼

      設定完環境之後,就如同其它整合開發環境一下,我們得先建立一個專案來讓我們開發程式。從 檔案 -> 開新檔案... -> 專案 來建立

      建立專案

      然後目前我們只需要建立 Console Application 的專案就可以寫作業了,不過要注意右下角的類型要改成 C 專案才不會讓 compiler 把你的程式碼當 C++ 在看唷!

      建立 C 專案
      點圖放大

      建立好專案之後,Dev-C++ 就會幫我們產生一個 main.c 的原始碼檔案,裡面會幫我們加入一些程式碼,你可以依自己的需要增減

    4. 編譯及執行

      寫好程式碼之後,最重要的就是要編譯它並且執行看結果,這種事情在整合式開發環境中一切是那樣地容易,只要利用工具列的快速按紐就可以搞定了。

      編譯
      點圖放大

      編譯完後,你可以按工具列上的「執行」來執行程式。

  • 使用 Microsoft Visual C++ 2005 Express Edition

    Visual C++ 2005 Express Edition 是微軟推出的免費 C/C++ 整合式開發環境,如果你不想「不合法」取得 Visual Studio 系列產品,那這個會是不錯的選擇(或者是已經被微軟產品慣壞的人....)

    1. 下載:

      既然是免費下載,那就趕快到官方網站上下載來安裝吧!

    2. 開啟並建立專案:

      我們必須先開啟一個專案來管理即將要開發的程式,打開後執行 檔案 -> 新增 -> 專案,然後建立一個 Win32 主控台應用程式,並且輸入名稱,如圖所示:

      建立專案

      建立 Win32 主控台應用程式

      確定之後,會出現一個精靈對話盒,如果你不清楚要作什麼的話,那就到設定頁,然後選擇「空專案」,如下圖所示:

      設定應用程式

    3. 加入程式碼檔案,並寫程式:

      完成後,我們要加入一個程式碼檔案來撰寫程式,到 檔案 -> 新增 -> 檔案... 中新增一個 Visual C++ 的 C++ 檔

      新增檔案

      加入 cpp 檔

      開啟檔案後,你就可以開始寫你的程式了:

      Hello world

    4. 編譯並執行:

      存檔後,按下上方工具列的箭頭按鈕,便可以編譯並且執行了!

如果你使用 Mac OS X

在 Mac OS X 下,你必須先到 Apple Developer Connection 上下載 Xcode 這個程式(或者你的安裝光碟上有),你才能作編譯程式的工作。至於安裝 Xcode 之後,你要在終端機下像連上工作站一樣使用文字編輯器+ gcc 的方法也是可以,這裡只會介紹使用 Xcode 的整合式開發環境

  1. 打開 Xcode:

    若無意外,你的 Xcode 應該都是安裝在 /Developer 目錄下,在 /Developer/Applications 下面有一個可以執行的 Xcode ,執行它便可以開啟整合式開發環境

  2. 建立新 Project

    開啟之後,在選單列上選擇 File -> New Project... 來建立一個 project,然後 project type 選擇 Command Line Utility 下的 C++ Tool UPDATE: Standard Tool (感謝 yllan 指正),然後輸入 project 名稱及存放的位置後,按下 Finish。

    建立 new project

    project name and location

  3. 寫程式及編譯執行

    建立好專案後,Xcode 也會幫你產生一個 main.c 檔案,直接開啟它來編輯就可以了!

    Project..

    撰寫程式碼

    當你寫好程式碼之後,按下工具列上方的 Build and Go 就可以編譯並且執行了!

筆者很懶惰,沒有詳細介紹每一個開發環境強大的地方,也許哪一天有空再來介紹這些工具的 debugger 要如何使用吧!

  • 學長,我轉去給我們T9學弟啦 😀
    (當然有注明出處XD)

  • 希望不會誤人子弟 XD

  • abchu

    其實我還是很不解為什麼要教他們用joe
    vi/vim明明就好用很多… 而且幾乎大家都是用這個吧@@

  • 雖然我也覺得 vim 很好,但是對於初初初學的人來說,vim 還是有點不太直覺,除非是有人帶著學比較好。

  • 應該選 Standard Tool 會比較好

    btw, 之前留言沒成功,如果重複發言煩請代為刪除。

  • 感謝 yllan,已更正。

  • doomleika

    Dev-C 看起來好像因為不明原因停止開發了,也許下次的教學該加上其它OpenSource的IDE來用?

  • doomleika: 感謝您的建議,如果有機會我會再試試別的 IDE 來作介紹 😀

  • SMAN

    Dev-C++ 會顯示執行結果嗎

    例如…
    hello,world

  • [quote comment=””]Dev-C++ 會顯示執行結果嗎

    例如…
    hello,world[/quote]

    建議可以教教學生採用 Eclipse bundle gcc 來作 compiler…到時候轉換Java 或 C++ 都很方便~

  • Aaron: 感謝您的建議。
    不過若真的要教這種 bundled IDE,那熱愛 Netbeans 的筆者我,應該是要介紹 Netbeans 才是啊!而且還可以再教 Ruby :p

  • 鴨鴨

    你好,我是mac的使用者,同時也是C語言的初學者,我照大大的方法可以寫C了耶,可是C++也可以嗎,副檔名是main.c那是不是要改成 main.cpp這樣才可以寫呢?

  • 鴨鴨

    因為我在用cout的時候失敗了,不曉得是不是因為不能用C++的語法的綠故

  • @鴨鴨:

    既然你用了 cout, 那就應該是要用 cpp 的副檔名喔, 這樣 compiler 才會認得你的 cout

  • wei

    是否可以介紹″每一個開發環境強大的地方″呢?

  • 三匹

    我是Mac的用戶,我按照大大的說明也可以寫c了,但是有個問題,
    寫出來的程式無法在Windows裡執行耶,因為老師改作業的電腦是Windows的...

  • parabola

    我也想問這個問題 請問要怎樣才能在 OSX寫的C在windoiw上跑呢?
    因為最近想買一台MB 入手 XD 感謝!

    • 只要沒有用到 Mac 上特有的 library 就可以在 Windows 上跑啊…

  • 三匹

    唔,我的意思是說,用xcode寫程式,經編譯器出來的檔案,windows無法執行,因為似乎不是exe執行檔

  • 那是當然的,
    要在 windows 上 run, 就把程式碼拿到 windows 上 build 吧

  • parabola

    了解!謝啦~

  • Pingback: yllan.blog[377] = Xcode 3.1中文使用指引初稿(一)()

  • 請問截圖中的vim有很詳細的中文的線上輔助視窗,這真是太實用了!
    這功能要怎麼叫出來?