發信人: ax.bbs@bbs.ee.nthu.edu.tw. (athena), 信區: test
標 題: 星星流講座 0001
發信站: ☆清華電機☆ (Mon May 1 09:35:50 1995)
轉信站: star
星星流講座 0001 C 語言教室
※ 本文授權 MOS 影業公司使用
第 1 講 之 1 Say Hello
Topic: 如何編譯及執行程式
請你先用編輯器 (editor) 編輯 hello.c 這個檔,它的內容如下:
/* hello.c */
#include <stdio.h>
main ()
{
printf ("Hello, world!\n");
}
接下來我們準備執行這個程式,請在 UNIX 提示號下鍵入以下高亮度字元:
[thccy14]/Oz/u/u80/ee/u801833/program> gcc -o hello hello.c
[thccy14]/Oz/u/u80/ee/u801833/program> ./hello
Hello, world!
當你輸入了 gcc -o hello hello.c 卻出現了這個訊息時
gcc: Command not found
那麼表示你的工作站上沒有 gcc 這個編譯器 (compiler),這時候請你把 gcc 換成
cc,也就是說,請你輸入
cc -o hello hello.c
代替我們例子中 gcc 那一行。請各位特別注意小寫英文字母 o 和數字 0 的差別。
gcc -o hello hello.c 這一行究竟代表什麼意思呢?其實 gcc 是一個 C 語言的編
譯器 (compiler),編譯器的工作就是負責把程式重編之後翻譯成可執行檔用的。一
個程式必須經過下面的流程才可以變成可執行檔:
原始碼 (source code)
↓
編譯器編譯 (compiled by compiler)
↓
目的碼 (object code)
↓
連結器連結程式庫 (link library by linker)
↓
可執行檔 (executable file)
而本行的參數和它們的意思如下:
gcc -o hello hello1.c
^ ^ ^
| | 這個是你所要編譯的程式名稱
| 這個是你編譯出來後可執行檔的名字
這個是指定可執行檔名字的參數
如果你不加 -o hello,也就是直接打 gcc hello1.c 的話,那編出來的可
執行檔自動被命名為 a.out。gcc 其他的參數我們以後用到再講。
你或許會覺得奇怪,程式不是要經過編譯器和連結器才可以變成可執行檔嗎?可是 gcc
只是一個編譯器而已,它怎麼可以造出可執行檔呢?這是因為 gcc 編譯完程式之後,會
偷偷地呼叫 ld 這個連結器,造出可執行檔來。