C基础——目标代码文件、可执行文件和库
生活随笔
收集整理的這篇文章主要介紹了
C基础——目标代码文件、可执行文件和库
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
目標代碼文件、可執行文件和庫
C編程的基本策略是使用程序將源代碼文件轉換為可執行文件,此文件包含可以運行的機器語言代碼。C分兩步完成這一工作:編譯和鏈接。編譯器將源代碼轉換為中間代碼,鏈接器將此中間代碼與其他代碼相結合來生成可執行文件。C使用被劃分為兩部分的這一方法使程序便于模塊化。我們可以分別編譯各個模塊,然后使用鏈接器將編譯過的模塊結合起來。這樣,如果需要改變一個模塊,則不必重新編譯所有其他模塊。同時,鏈接器將自己的程序與預編譯的庫代碼結合起來。 中間文件的形式有多種選擇。最一般的選這,同時也是大部分C程序員的選擇,是將源代碼轉換為機器語言代碼,將結果放置在一個目標代碼文件(簡稱為目標文件)中。雖然目標文件包含機器語言代碼,但該文件還不能運行。目標文件包含源代碼的轉換結果,但該轉換結果并不是一個完整的程序。 目標代碼文件中的所缺少的第一個元素的一種叫做啟動代碼(start-up code)的東東,此代碼相當于自己程序和操作系統之間的接口。 目標代碼中缺少的第二個元素是庫函數的代碼。幾乎所有C程序都利用標準C庫中包含的庫函數。比如printf()函數,目標代碼文件不包含這一函數的代碼,它只包含聲明使用printf()函數的指令。實際代碼存儲在庫中。庫文件中包含許多函數的目標代碼。 鏈接器的作用是將這3個元素(目標代碼、系統的標準啟動代碼和庫代碼)結合在一起,并將它們存放在單個文件,即可執行文件中。對庫代碼來說,鏈接器只從庫中提取我們編寫代碼中使用函數所需要的代碼。 簡而言之,目標文件和可執行文件都是由機器語言指令組成的。但目標文件只包含自己編寫的代碼轉換成機器語言,而可執行文件還包含我們編寫代碼中使用的庫例程以及啟動代碼的機器代碼。C基礎——目標代碼文件、可執行文件和庫
http://bbs.elecfans.com/jishu_467127_1_1.html
(出處: 中國電子技術論壇)
轉載于:https://www.cnblogs.com/jewn00/p/5271419.html
總結
以上是生活随笔為你收集整理的C基础——目标代码文件、可执行文件和库的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: MongoDB空间分配
- 下一篇: ios打包ipa的四种实用方法