編譯檔案中原命令如下:
gcc -wall -g -fpic -shared -o libiptraces.so iptraces.c
gcc -wall -g -o p.out -i. -l. -liptraces nsprint.c
makefile關係到整個工程的編譯規則,makefile定義了一系列的規則來制定,哪些檔案需要先編譯,
哪些檔案後編譯,甚至於進行更複雜的功能操作,同時好處是——「自動化編譯」
makeflie編寫規範:
目標:依賴檔案
$^ 代表所有依賴檔案
$@ 代表所有目標檔案
$< 代表第乙個依賴檔案
% 代表萬用字元
@指令:遮蔽指令
定義變數(變數大寫)
變數名=值1 值2 ...
使用變數 $(變數名)
gcc是linux下面的編譯器,分為預處理->編譯->彙編->鏈結
gcc選項如下:
-o 輸出可執行檔案
-c 編譯生成目標檔案
-g 輸出除錯資訊
-o2 編譯器優化級別 1-3
-wall 警告選項 輸出警告資訊
-l 緊接著鏈結庫 lpthread
-l 指定鏈結庫的路徑
-i 標頭檔案路徑
-shared 編譯成動態鏈結庫
-fpic:-fpic作用於編譯階段,告訴編譯器產生與位置無關**
(position-independent code),則產生的**中,沒有絕對位址,
全部使用相對位址,故而**可以被載入器載入到記憶體的任意 位置,
都可以正確的執行。這正是共享庫所要求的,共享庫被載入時,
在記憶體的位置不是固定的。
Makefile詳解 概述
什麼是makefile?或許很多winodws的程式設計師都不知道這個東西,因為那些windows的ide都為你做了這個工作,但我覺得要作乙個好的和professional的程式設計師,makefile還是要懂。這就好像現在有這麼多的html的編輯器,但如果你想成為乙個專業人士,你還是要了解html...
Makefile詳解 介紹
make命令執行時,需要乙個 makefile 檔案,以告訴make命令需要怎麼樣的去編譯和鏈結程式。首先,我們用乙個示例來說明makefile的書寫規則。以便給大家乙個感興認識。這個示例 於gnu的make使用手冊,在這個示例中,我們的工程有8個c檔案,和3個頭檔案,我們要寫乙個makefile來...
Makefile詳解 內容
makefile裡主要包含了五個東西 顯式規則 隱晦規則 變數定義 檔案指示和注釋。1 顯式規則。顯式規則說明了,如何生成乙個或多的的目標檔案。這是由makefile的書寫者明顯指出,要生成的檔案,檔案的依賴檔案,生成的命令。2 隱晦規則。由於我們的make有自動推導的功能,所以隱晦的規則可以讓我們...