$ cat hello1.c
如果已經有hello1.c則將hello1.c的文件內容顯示在屏幕上,否則給出提示沒有此文件。
$ cat 單獨輸入cat會將後面所有的按鍵輸出到屏幕上面,退出cat按Ctrl+C鍵。
$vi hello1.c 進入VIM,沒有hello1.c則創建此文件。
按dd刪除光標所在行,按x刪除光標所在字符$光標定位到行尾,d$刪除光標所在字符到行尾所有字符按i進入插入模式,a進入附加模式,hello1.c中輸入
$gcc -c hello1.c
$gcc -c hello2.c
$gcc hello1.o hello2.o -o hello
$./hello.out
如果在終端shell下直接輸入$hello,會提示沒有此命令,因為此時shell以為你輸入的是shell命令,而hello並不是shell的命令,而是你自己寫的程序。
要想執行自己寫的程序,有兩種辦法,一是cd到程序所在的目錄,執行:. /hello,,另一種就是:(路徑名)/hello。
gcc的 -c格式只生成目標文件,不進行連接,用於對原文件的分別編譯,生成.o目標文件。
gcc的 -o file選項格式將輸出放在文件file中。如果未使用該項,則可執行文件放在a.out中。
如果hello1.c中有
#include “hello3.h”
而hello3.h又不在當前目錄和標准目錄中,比如在/tmp下,則可以如下編譯
$gcc -I /tmp hello1.c
假如hello1.c中使用了某宏比如MAC而並沒有定義該宏,鍵入要#define MAC “test”可以如下編譯
$gcc -I /tmp -D MAC=' "test" " -E hello1.c
-D name 定義一個宏,其值為1
-D name=definition定義一個宏name,指定值為definition,作用等價於在源文件中#define name definition,但-D選項比宏定義優先級高。
-I dir 指定搜索頭文件的路徑dir。
-E 只對指定的源文件進行預處理,不做編譯,生成的結果送到標准輸出。