c原始檔到可執行一共需要經歷4個階段。使用gcc編譯程式要經過預處理、編譯、彙編、鏈結。
預處理
編譯器主要載入標頭檔案、條件編譯、巨集替換,使用:
gcc -e main.c > main.i,
編譯
編譯過程中,編譯器主要做語法檢查和詞法分析,沒有問題之後將會翻譯成彙編**或者中間**:
gcc -s main.i -o main.s
彙編
彙編階段將main.s檔案轉化為二進位制目標**
gcc -c main.s -o main.o
鏈結
編譯成功之後,進入鏈結,將目標檔案、啟動**、庫檔案鏈結成可執行檔案的過程
gcc main.o -o main.exe
gcc與g++都是gun的c&c++的編譯器但是他們有以下區別:
gcc 命令常用選項的功能:
c/c++各種字尾
原始檔字尾
.c c源程式;預處理,編譯,彙編
.c c++源程式;預處理,編譯,彙編
.cc c++ 源程式;預處理,編譯,彙編
.cxx c++源程式;預處理,編譯,彙編
.m objective-c源程式;預處理,編譯,彙編
.i 預處理後的c檔案;編譯,彙編
.ii 預處理後的c++ 檔案;編譯,彙編
.s 組合語言源程式;彙編
.s 組合語言源程式;預處理,彙編
.h 預處理器檔案;通常不出現在命令列上
其他字尾名的檔案被傳遞給聯結器(linker).通常包括:
.o 目標檔案(object file)
.a 靜態鏈結庫
.so 動態鏈結庫
Shell if引數 以及 變數
a file 如果 file 存在則為真。b file 如果 file 存在且是乙個塊特殊檔案則為真。c file 如果 file 存在且是乙個字特殊檔案則為真。d file 如果 file 存在且是乙個目錄則為真。e file 如果 file 存在則為真。f file 如果 file 存在且是乙個...
animation引數以及用法
它有如下取值 animation name 檢索或設定物件所應用的動畫名稱 animation duration 檢索或設定物件動畫的持續時間 animation timing function 檢索或設定物件動畫的過渡型別 animation delay 檢索或設定物件動畫延遲的時間 animat...
out引數以及使用游標問題
查詢某個員工的姓名 月薪 職位 create or replace procedure queryempinfo eno in number,pename out varchar2,psal out number,pjob out varchar2 as begin select ename,sal...