第 1 講 之 1 Say Hello
Topic: 如何編譯及執行程式請你先用編輯器 (editor) 編輯 hello.c 這個檔,它的內容如下:/* hello.c */
#include <stdio.h>
int main (void)
{
printf ("Hello, world!\n");
return 0;
}
接下來我們準備執行這個程式,請在 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 這個連結器,造出可執行檔來。
沒有留言:
張貼留言