Stone
導航
BlogJava
首頁
新隨筆
聯(lián)系
聚合
管理
<
2007年4月
>
日
一
二
三
四
五
六
25
26
27
28
29
30
31
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
1
2
3
4
5
統(tǒng)計
隨筆 - 1
文章 - 0
評論 - 0
引用 - 0
常用鏈接
我的隨筆
我的評論
我的參與
留言簿
(2)
給我留言
查看公開留言
查看私人留言
隨筆檔案
2007年4月 (1)
搜索
最新評論
2007年4月17日
《c primer plus》讀書筆記——源代碼文件、目標代碼文件、庫文件、可執(zhí)行文件
我們知道從源文件到可執(zhí)行文件,C分為兩步:編譯和鏈接。
1>編譯
編譯就是把源代碼轉(zhuǎn)換為中間代碼。當然了,存放中間代碼的文件就叫中間文件。
那么中間文件,或者說中間代碼是由什么構(gòu)成呢?其形式有多種。但是我只知道一種:就是由源代碼轉(zhuǎn)換的機器碼組成,這種中間文件叫做目標文件。
雖然它和可執(zhí)行文件一樣都是有機器碼組成,但是它并不能直接運行。因為它比可執(zhí)行文件少了兩個東東:啟動代碼(start-up code)和庫函數(shù)。
2>鏈接
鏈接就是把目標代碼、相應操作系統(tǒng)的啟動代碼、庫函數(shù)三者結(jié)合起來行成可執(zhí)行文件。
(啟動代碼):
此代碼相當于你的程序和操作系統(tǒng)之間的接口。不同操作系統(tǒng)處理程序的方式不同,所以它們的啟動代碼也不同。
(庫)
:
幾乎每個c函數(shù)都會引用到庫函數(shù),目標文件中只有相應函數(shù)的引用聲明,并沒有相應代碼。
這種分兩步走的做法便于程序的模塊化。你可以分別編譯各個模塊,然后把編譯過的模塊鏈接起來。這樣如果改變其中一個模塊的話,只需要重新編譯這個模塊,而不需要編譯其他模塊兒。
posted @
2007-04-17 17:22
Stone 閱讀(506) |
評論 (0)
|
編輯
收藏
Powered by:
BlogJava
Copyright © Stone
主站蜘蛛池模板:
十堰市
|
清远市
|
巴彦淖尔市
|
竹溪县
|
安阳县
|
临沭县
|
吴桥县
|
麻江县
|
平乡县
|
丰县
|
任丘市
|
广丰县
|
漳州市
|
武陟县
|
衡阳市
|
永仁县
|
织金县
|
永登县
|
隆昌县
|
仁怀市
|
桃江县
|
洪江市
|
扬州市
|
平安县
|
淮阳县
|
大连市
|
镇远县
|
洞头县
|
师宗县
|
东丰县
|
聂拉木县
|
黑龙江省
|
泽库县
|
克什克腾旗
|
余干县
|
黔江区
|
治多县
|
松桃
|
绥化市
|
靖远县
|
湄潭县
|