不卡AV在线|网页在线观看无码高清|亚洲国产亚洲国产|国产伦精品一区二区三区免费视频

學(xué)習(xí)啦>學(xué)習(xí)電腦>操作系統(tǒng)>Linux教程>

Linux下編譯C文件的過(guò)程教程

時(shí)間: 志藝942 分享

  你還在為不知道Linux下編譯C文件的過(guò)程教程而不知所措么?下面來(lái)是學(xué)習(xí)啦小編為大家收集的Linux下編譯C文件的過(guò)程教程,歡迎大家閱讀:

  Linux下編譯C文件的過(guò)程教程

  1、首先,寫(xiě)一個(gè)簡(jiǎn)單的C源文件:HelloWorld

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

  2、下面是調(diào)用gcc命令編譯HelloWorld.c的過(guò)程:

  [root@localhost gcc_test]# ls -l

  total 4

  -rw-r--r-- 1 root root 78 Sep 11 00:17 HelloWorld.c

  // gcc的-E選項(xiàng),可以讓編譯器在預(yù)處理后停止,并輸出預(yù)處理結(jié)果。

  [root@localhost gcc_test]# gcc -E HelloWorld.c -o step1.i

  [root@localhost gcc_test]# ls -l

  total 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選項(xiàng),表示在生成匯編代碼后停止,-o輸出匯編代碼文件。

  [root@localhost gcc_test]# gcc -S step1.i -o step2.s

  [root@localhost gcc_test]# ls -l

  total 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匯編器負(fù)責(zé)將生成的匯編代碼文件編譯為目標(biāo)文件

  [root@localhost gcc_test]# gcc -c step2.s -o step3.o

  [root@localhost gcc_test]# ls -l

  total 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連接器,負(fù)責(zé)將程序的目標(biāo)文件與所需的所有附加的目標(biāo)文件連接起來(lái),最終生成可執(zhí)行文件。附加的目標(biāo)文件包括靜態(tài)連接庫(kù)和動(dòng)態(tài)連接庫(kù)。

  [root@localhost gcc_test]# gcc step3.o -o step4_result

  [root@localhost gcc_test]# ls -l

  total 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

  // 執(zhí)行可執(zhí)行程序

  [root@localhost gcc_test]# ./step4_result

  Hello World!

  [root@localhost gcc_test]#

  3、上述拆分的過(guò)程完全可以一步執(zhí)行:

  [root@localhost gcc_test]# gcc HelloWorld.c -o result

  [root@localhost gcc_test]# ls -l

  total 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]#

看了“Linux下編譯C文件的過(guò)程教程”還想看:

1.linux重新編譯方法

2.如何編譯內(nèi)核及制作RPM包

3.Linux C語(yǔ)言文件IO教學(xué)視頻

4.Linux下C語(yǔ)言編程基礎(chǔ)知識(shí)

5.linux操作系統(tǒng)建立ARM交叉編譯環(huán)境的步驟

6.動(dòng)態(tài)編譯busybox和編譯并安裝busybox

Linux下編譯C文件的過(guò)程教程

你還在為不知道Linux下編譯C文件的過(guò)程教程而不知所措么?下面來(lái)是學(xué)習(xí)啦小編為大家收集的Linux下編譯C文件的過(guò)程教程,歡迎大家閱讀: Linux下編譯C文件的過(guò)程教程 1、首先,寫(xiě)一個(gè)簡(jiǎn)單的C源文件:HelloWorld #include stdio.hint main(
推薦度:
點(diǎn)擊下載文檔文檔為doc格式
2772457