任何一個(gè)應(yīng)用程序的編譯步驟:(及 終端操作)
<1>.預(yù)編譯:預(yù)編譯器 負(fù)責(zé)處理 “#”開頭的指令塑猖。
gcc -E -o xxx.i xxx.c
預(yù)編譯(-E
) “xxx.c
”文件,輸出(-o
)的結(jié)果:“xxx.i
”文件谈跛。
<2>.匯編 :匯編器 負(fù)責(zé)將 預(yù)編譯器處理的結(jié)果匯編成 匯編代碼羊苟。
gcc -S -o xxx.s xxx.i
<3>.編譯:編譯器 負(fù)責(zé)將 匯編代碼編譯成 二進(jìn)制級別的代碼。(語法分析感憾,函數(shù)聲明)
gcc -c -o xxx.o xxx.s
<4>.鏈接:鏈接器 負(fù)責(zé)將 多個(gè)二進(jìn)制代碼和系統(tǒng)庫等等 組合成一個(gè)完整的二進(jìn)制應(yīng)用程序蜡励。(檢查函數(shù)定義)
gcc -o xxx xxx.o
<5>.運(yùn)行二進(jìn)制應(yīng)用程序:
./xxx
終端編輯代碼的操作:
(1).創(chuàng)建 文件夾“abc”:
GYHdeMacBook-Pro:~ gyh$ mkdir abc
效果:
在終端中打開 文件夾“abc”:
GYHdeMacBook-Pro:~ gyh$ cd abc
查看文件夾“abc”里面內(nèi)容:
GYHdeMacBook-Pro:abc gyh $ ls
并沒有什么內(nèi)容。
(2).創(chuàng)建 “abc.c”文件,并對其操作:
GYHdeMacBook-Pro:abc gyh $ vi abc.c
對“abc.c”文件進(jìn)行操作:(“
:wq
”:保存退出)
在“abc”文件夾里:多出一個(gè)“abc.c”文件
(3).對“abc.c”文件進(jìn)行預(yù)編譯:
GYHdeMacBook-Pro:abc gyh $ gcc -E -o abc.i abc.c
在“abc”文件夾里:又多出一個(gè)“abc.i”文件
(4).打開凉倚、查看 “abc.i”文件:
GYHdeMacBook-Pro:abc gyh $ vi abc.i
無需任何操作:(最底部為剛剛編寫的代碼)
對“abc.i”文件兼都,不做 任何操作
只對“abc.c”文件進(jìn)行處理
(5).對“abc.c”文件進(jìn)行鏈接:
GYHdeMacBook-Pro:abc gyh $ gcc -o abc abc.c
在“abc”文件夾里:多出一個(gè)“abc”文件(二進(jìn)制應(yīng)用程序)
查看“abc”文件夾里的內(nèi)容:
GYHdeMacBook-Pro:abc gyh $ ls
輸出:
abc abc.c abc.i
(6).運(yùn)行二進(jìn)制應(yīng)用程序:
GYHdeMacBook-Pro:abc gyh $ ./abc
輸出:(運(yùn)行效果)
sum is:8
Circle's Area is:78.539750
Hello,Sir!abc is?????
展示錯(cuò)誤展示:
1.打開“abc.c”文件,進(jìn)行(編輯)處理
GYHdeMacBook-Pro:abc gyh $ vi abc.c
寫入錯(cuò)誤代碼:
2.對“abc.c”文件進(jìn)行預(yù)編譯:
GYHdeMacBook-Pro:abc gyh $ gcc -E -o abc.i abc.c
3.對“abc.c”文件進(jìn)行鏈接:
GYHdeMacBook-Pro:abc gyh $ gcc -o abc abc.c
報(bào)錯(cuò)提示:
“GYHdeMacBook-Pro:abc gyh $ ./abc
”執(zhí)行的結(jié)果:
修改之后
- 1.進(jìn)行(編輯)處理:
GYHdeMacBook-Pro:abc gyh $ vi abc.c
- 2.預(yù)編譯:
GYHdeMacBook-Pro:abc gyh $ gcc -E -o abc.i abc.c
- 3.鏈接:
GYHdeMacBook-Pro:abc gyh $ gcc -o abc abc.c
- 4.運(yùn)行
GYHdeMacBook-Pro:abc gyh $ ./abc
結(jié)果:
Atom編輯代碼
“Atom”圖標(biāo):
“Atom”圖標(biāo)
“abc.i”文件:
“abc.c”文件:進(jìn)行代碼編輯(添加一句打印語句)
- 1.進(jìn)入“abc”文件夾:
GYHdeMacBook-Pro:~ gyh $ cd abc
- 2.預(yù)編譯:
GYHdeMacBook-Pro:abc gyh $ gcc -E -o abc.i abc.c
“abc.i”文件 也多出該打印語句:
- 3.鏈接:
GYHdeMacBook-Pro:abc gyh $ gcc -o abc abc.c
- 4.運(yùn)行:
GYHdeMacBook-Pro:abc gyh $ ./abc
結(jié)果: