日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

gcc 常用命令(逐渐完善)

發布時間:2025/6/17 编程问答 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 gcc 常用命令(逐渐完善) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

首先適用一個簡單的示例程序,如下:

//test.c #include <stdio.h> int main(void) {printf("Hello gcc!\n"); }

這個程序直接編譯使用

gcc test.c -o test

即可,其中-o的意思是生成后面的文件。

而實際上編譯過程是分為以下幾個子過程的:

  • 預處理(Preprocessing)
  • 編譯(Compilation)
  • 匯編(Assembly)
  • 鏈接(Linking)

我們可以一步一步執行,來觀察每一步結果

1、預處理過程(Preprocessing):

gcc -E test.c -o test.i 或 gcc -E test.c

這步可以輸出test.i文件,存放test.c講過預處理之后的代碼。

如果時候后者,則直接在命令窗口顯示預處理的結果。

gcc的-E選項可以讓編譯器在預處理后就停止,并輸出結果。

?

2、編譯為匯編代碼(Compolation)過程:

通過對預處理結果test.i文件進行編譯,可以生成匯編代碼

gcc -S test.i -o test.s

gcc 的-S選項表示在程序編譯期間,在生成匯編代碼后停止,-o輸出匯編代碼文件

?

3、匯編過程(Assembly):

對于上一屆段生成的test.s 文件,gas匯編器負責將其編譯為目標文件,如下:

gcc -c test.s -o test.o

在這個生成文件中我們已經沒有辦法在詳細看了,因為它已經是二進制代碼

?

4、鏈接過程(Linking):

gcc 鏈接器是gas 提供的,負責將程序的目標文件與所需的所有附加的目標文件連接起來,最終形成執行文件,包含靜態鏈接庫和動態鏈接庫。

對于上一階段生成的test.o文件,將其與C標準輸入輸出庫進行鏈接,最終生成test

gcc test.o -o test

在命令階段即可運行./test來輸出結果了。

?

轉載于:https://www.cnblogs.com/bearcat/archive/2012/05/03/2480454.html

總結

以上是生活随笔為你收集整理的gcc 常用命令(逐渐完善)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。