gcc編譯和運(yùn)行C程序

本次案例使用如下代碼進(jìn)行測(cè)試

#include <stdio.h>
int add_range(int low, int high){
      int i;
      int sum;
      for(i = low; i <= high; i++){
          sum = sum + i;
      }
      return sum;
}
     
int main(){
      int result[100];
      result[0] = add_range(1, 10);
      result[1] = add_range(1, 100);
      printf("result[0] = %d\nresult[1] = %d\n", result[0], result[1]);
      return 0;
     
}

gcc的基本用法
gcc[options][filenames]

當(dāng)不使用任何選項(xiàng)的時(shí)候編譯c代碼,將產(chǎn)生一個(gè)a.out可執(zhí)行文件,如下
image.png

運(yùn)行a.out進(jìn)行查看


image.png
也可以為編譯后的文件指定一個(gè)文件名,如下產(chǎn)生test可執(zhí)行文件
image.png

運(yùn)行test查看


image.png

-o 后面必須跟上一個(gè)文件名,如 -o outline

1、預(yù)處理階段

使用-E選項(xiàng),對(duì)輸入文件只做預(yù)處理不編譯。當(dāng)使用這個(gè)選項(xiàng)時(shí),預(yù)處理器的輸出被送到標(biāo)準(zhǔn)輸出而不是存儲(chǔ)到文件。如果想將預(yù)處理的輸出存儲(chǔ)到文件,可結(jié)合-o選項(xiàng)使用,使用如下,less指令是查看 test.i文件


image.png
2、編譯階段

使用-S進(jìn)行編譯,如下,產(chǎn)生.i為后綴的編譯文件


image.png
3、匯編階段

使用-c進(jìn)行編譯如下,將C源文件或者匯編語言文件編譯成可重定向的目標(biāo)文件(二進(jìn)制形式),其默認(rèn)后綴為.o。


image.png
4、鏈接階段

可將不同的可重定向文件合并在一起,生成可執(zhí)行文件
這里使用-c選項(xiàng)輸出到成可執(zhí)行文件,如下


image.png
5、執(zhí)行階段

然后就可以執(zhí)行可執(zhí)行文件了,如下


image.png
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容