国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > Linux > 正文

Linux下編譯C文件的過程

2020-05-27 13:13:14
字體:
來源:轉載
供稿:網友

 

1、首先,寫一個簡單的C源文件:HelloWorld

 

#include <stdio.h>int main(){ printf("/nHello World!/n/n"); return 0;}

 

 

2、下面是調用gcc命令編譯HelloWorld.c的過程:

[root@localhost gcc_test]# ls -ltotal 4-rw-r--r-- 1 root root 78 Sep 11 00:17 HelloWorld.c

 

// gcc的-E選項,可以讓編譯器在預處理后停止,并輸出預處理結果。[root@localhost gcc_test]# gcc -E HelloWorld.c -o step1.i

[root@localhost gcc_test]# ls -ltotal 24-rw-r--r-- 1 root root    78 Sep 11 00:17 HelloWorld.c-rw-r--r-- 1 root root 18020 Sep 11 00:22 step1.i

 

// gcc的-S選項,表示在生成匯編代碼后停止,-o輸出匯編代碼文件。[root@localhost gcc_test]# gcc -S step1.i -o step2.s

[root@localhost gcc_test]# ls -ltotal 28-rw-r--r-- 1 root root    78 Sep 11 00:17 HelloWorld.c-rw-r--r-- 1 root root 18020 Sep 11 00:22 step1.i-rw-r--r-- 1 root root   454 Sep 11 00:22 step2.s

 

// gas匯編器負責將生成的匯編代碼文件編譯為目標文件[root@localhost gcc_test]# gcc -c step2.s -o step3.o

[root@localhost gcc_test]# ls -ltotal 32-rw-r--r-- 1 root root    78 Sep 11 00:17 HelloWorld.c-rw-r--r-- 1 root root 18020 Sep 11 00:22 step1.i-rw-r--r-- 1 root root   454 Sep 11 00:22 step2.s-rw-r--r-- 1 root root   880 Sep 11 00:23 step3.o

 

// gcc連接器,負責將程序的目標文件與所需的所有附加的目標文件連接起來,最終生成可執行文件。附加的目標文件包括靜態連接庫和動態連接庫。[root@localhost gcc_test]# gcc step3.o -o step4_result

[root@localhost gcc_test]# ls -ltotal 40-rw-r--r-- 1 root root    78 Sep 11 00:17 HelloWorld.c-rw-r--r-- 1 root root 18020 Sep 11 00:22 step1.i-rw-r--r-- 1 root root   454 Sep 11 00:22 step2.s-rw-r--r-- 1 root root   880 Sep 11 00:23 step3.o-rwxr-xr-x 1 root root  4734 Sep 11 00:23 step4_result

 

// 執行可執行程序[root@localhost gcc_test]# ./step4_result Hello World![root@localhost gcc_test]#  

 

3、上述拆分的過程完全可以一步執行:

[root@localhost gcc_test]# gcc HelloWorld.c -o result[root@localhost gcc_test]# ls -ltotal 48-rw-r--r-- 1 root root    78 Sep 11 00:17 HelloWorld.c-rwxr-xr-x 1 root root  4734 Sep 11 00:39 result-rw-r--r-- 1 root root 18020 Sep 11 00:22 step1.i-rw-r--r-- 1 root root   454 Sep 11 00:22 step2.s-rw-r--r-- 1 root root   880 Sep 11 00:23 step3.o-rwxr-xr-x 1 root root  4734 Sep 11 00:23 step4_result[root@localhost gcc_test]# ./result Hello World![root@localhost gcc_test]# 

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 封开县| 府谷县| 宁津县| 久治县| 建瓯市| 涿州市| 乡城县| 额济纳旗| 水富县| 静乐县| 漳州市| 武城县| 张家界市| 西藏| 白朗县| 巫山县| 津市市| 邵阳市| 荣昌县| 芜湖县| 曲麻莱县| 勃利县| 措美县| 同江市| 恩施市| 新营市| 扬中市| 烟台市| 商水县| 古蔺县| 沂源县| 富锦市| 洛南县| 天峨县| 罗甸县| 新昌县| 东乡县| 东兰县| 延津县| 南漳县| 南漳县|