鏈結程式把所有物件檔案中的機器碼組合在一起,並解析它們之間的交叉引用。
它還整合了物件模組所使用的庫函式的**。
這是鏈結程式的一種簡化表示,因為這裡假定在可執行模組中,模組之間的所有鏈結都是靜態建立的。
實際上有些鏈結是動態的,即這些鏈結是在程式執行時建立的。
鏈結就是鏈結器ld將各個目標檔案組裝在一起,解決符號依賴,庫依賴關係,並生成可執行檔案。
鏈結的命令。
ld –static crt1.o crti.o crtbegint.o hello.o –start-group –lgcc –lgcc_eh –lc-end-group crtend.o
在使用gcc作為編譯器時:
o1:優化編譯會嘗試減少**體積和**執行時間,但是並不會執行會花大量時間的優化操作
o2:進一步優化 gcc執行幾乎所有支援的操作但不包括空間和速度之間權衡的優化。
不執行迴圈展開和函式「內聯」優化操作;與o1相比o2將會話費更多的編譯時間當然也會生成效能更好的**。
o3:更進一步優化。o3開啟o2指定的所有優化操作並且開啟:
1、-finline-functions
2、-funswitch-ioops
3、-fgcse-after-reload
-static 是讓 gcc 進行靜態編譯,也就是把所有都需要的函式庫都整合進編譯出來的程式上,這個程式就可以不依賴外部的函式庫執行了。
Linux開發工具
linux開發工具 vim gcc gdb make git github 文字編輯器 vim 功能最強大 1 使用 三種模式 命令列模式 插入模式 底行模式 vim 空格 檔名 例如vim hello.c 此時是命令列模式 無法插入資料 需要進入插入模式 按i或者a 退出插入模式 按esc 切換到...
《Linux程式設計》 開發工具
一 多個原始檔帶來的問題 二 make命令和makefile 1 makefile的語法 1 makefile檔案由一組依賴關係和規則組成。2 make命令會會根據makefile檔案來確定目標檔案的建立順序以及正確的規則呼叫順序。2 make命令的選項和引數 1 make程式選項 i k 讓mak...
Linux 環境開發工具
vim編輯器是uinx linux作業系統下標準的編譯器。gcc g 是gun 中 c 和 c 的編譯器 gcc option filename g option filename options 是編譯器所需要的引數 filename 是檔名稱 linux下的 c 和 c 編譯器將程式編譯成乙個可...