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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

GNU工具以及GCC对C语言程序的处理流程

發布時間:2023/12/1 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 GNU工具以及GCC对C语言程序的处理流程 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

GCC是一族工具的集合,包含預處理器、編譯器、匯編器、鏈接器。
對于默認的文件名,GCC可以自動選擇工具自動完成文件處理過程。
從C語言的源程序道可執行文件,實質上是依靠GCC調用一系列工具完成的。

GCC默認處理的文件

文件類型擴展名文件說明
文本文件*.cC源文件
文本文件*.cC源文件
文本文件*.cppC++源文件
文本文件*.i預處理后的C源文件
文本文件*.ii預處理后的C++源文件
文本文件*.s匯編語言
文本文件*.h頭文件
二進制文件*.o目標文件
二進制文件*.so動態庫(共享庫)
二進制文件*.a靜態庫(歸檔文件)

Binutils工具集合

Binutils是一個二進制工具集合,包含匯編、鏈接以及一系列的輔助工具。

工具名稱說明
asGNU匯編器。將處理器的匯編代碼轉換成可執行代碼,并存儲道目標文件.o文件中
ldGNU鏈接器。將一個或多個目標文件.o庫組合成一個可執行程序;或者生成靜態庫和動態庫
ar歸檔工具,可以將多個文件組合成一個大文件,并且可以讀取原始文件的內容
stripe取出文件中的符號
nm用來顯示目標文件中的符號
objectcopy轉換成二進制代碼的工具
objdump顯示目標文件的反匯編工具
readelf顯示ELF文件中的各種信息
string顯示文件中的可打印字符
ranlib產生歸檔文件的索引,并將其保存到歸檔文件中,索引同時列出歸檔文件各成員所定義的可重分配目標文件
addr2line可以將一個可執行程序的地址映射到源文件的對應行
gprof顯示程序調用段的各種數據

C語言編譯工作流程

分為4步:
1、預處理:生成.i文件
2、編譯:將預處理后的文件轉換成匯編語言,生成文件.s
3、匯編:由匯編代碼生成目標代碼,即機器代碼,生成可執行文件.o
4、鏈接:有各個文件的目標代碼生成可執行程序

總結

以上是生活随笔為你收集整理的GNU工具以及GCC对C语言程序的处理流程的全部內容,希望文章能夠幫你解決所遇到的問題。

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