程式設計師自我修養鏈結庫筆記

2021-06-11 03:10:52 字數 359 閱讀 5274

第二章節:

1.預編譯:gcc -e cwj.cpp -o cwj.i  展開巨集,刪除空格字元,新增行號,去除所有的注釋

2.彙編: gcc -s cwj.i -o cwj.s 

3. 可執行: gcc -c cwj.s -o cwj.o       as cwj.s -o cwj.o   as是彙編器

5.  0掃瞄 1詞法分析 2語法分析 3語義分析 :靜態語義是在編譯的時候可以檢查的,動態語義在執行時才能夠檢查的 4中間語言生成:原始碼優化,**生成,目標**優化 5.鏈結程式,因為有些目標檔案的變數會定義在其他的模組中,這個時候就需要靠鏈結實現了。

第三章節:

2.file命令可以檢視檔案的格式是什麼格式。

《程式設計師的自我修養》筆記 靜態鏈結

在通過編譯和彙編後,就生成了目標檔案,鏈結就是把這些目標檔案加工後合併成乙個輸出檔案的過程。鏈結過程可以分為兩步 第一步 空間與位址分配。掃瞄所有的輸入目標檔案,獲得它們每個各個段的長度 屬性和位置,並且將輸入目標檔案中的符號表中所有 的符號定義和符號引用收集起來,統一放到乙個全域性符號表。這一步中...

《程式設計師自我修養》閱讀筆記 動態鏈結

1 動態鏈結的含義。動態鏈結就是將鏈結時的重定位推遲到載入時。相比於靜態鏈結,動態鏈結的乙個優點是可以節省記憶體。因為共享檔案的 可以共享。使用動態鏈結的時候,可執行檔案和共享檔案都會載入到記憶體。但是,如果很多可執行檔案都使用了同乙個共享檔案的時候,共享檔案的 部分只需要裝載一次,這樣就達到了節省...

《程式設計師的自我修養 鏈結 裝載與庫》 鏈結

對於平常的應用程式開發,我們很少需要關注編譯和鏈結過程,因為通常的開發環境都是流行的整合開發環境 ide 比如visual studio myeclipse等。這樣的ide一般都將編譯和鏈結的過程一步完成,通常將這種編譯和鏈結合併在一起的過程稱為構建,即使使用命令列來編譯乙個源 檔案,簡單的一句 g...