1.makefile指定make檔案:
make -f file
2.makefile編譯選項:
一般使用cflags,變數指代編譯選項:
-g:編譯進debug資訊(行號,函式,呼叫棧),可以使用gdb進行除錯;
-w:-wall,stdout輸出所有警告,選項是w,值是all;
-m:-m數字 amd 平台x86-64-m32 :int , long , pointer(32bits) ,生成的可執行程式,可以執行在i386上。
-m64 :int(32bits) ; long , pointer(64 bits),生成的可執行程式,可以執行在 amd 的x86-64 架構cpu上.
-mx32 :int , long , pointer(32 bits),生成的可執行程式,可以執行在amd的 x86-64 架構cpu上.
cpu架構的優化選項:
-mcpu=(典型值:v9)
-march=
-mtune=cpu-type(典型值:i686,pentium4,xeon)
(machine dependent options (intel))
-o:-o0 :禁止編譯器進行優化。預設為此項。
-o(-o1) :嘗試優化編譯時間和可執行檔案大小;
-o2 :更多的優化,會嘗試幾乎全部的優化功能,但不會進行「空間換時間」的優化方法。
-o3 :在 -o2 的基礎上再開啟一些優化選項:-finline-functions, -funswitch-loops 和 -fgcse-after-reload 。
-os(-o2.5) :對生成檔案大小進行優化。它會開啟 -o2 開的全部選項,除了會那些增加檔案大小的。
編譯模組 Makefile
在makefile中我們經常看到 這幾個賦值運算子,那麼他們有什麼區別呢?我們來做個簡單的實驗 新建乙個makefile,內容為 ifdef define vre vre hello world else endif ifeq opt define vre hello world first end...
Makefile工程編譯
1.寫在前面 本篇文章講的是接前面makefile之編譯多個可執行程式中第二個需求,並延伸到對正規工程的編譯。2.工程 我接觸的工程有2種情況 所有原始檔都放乙個目錄 按模組分放不同的目錄 下面按照這兩種情況講解。3.所有原始檔都放乙個目錄 不建議所有原始檔都放乙個目錄,當工程大時,乙個目錄下會有很...
makefile編譯問題
porting http 時遇到 makefile因為編譯時編碼的問題,導致無法編譯的問題。開始報錯是提示,api的倚賴項上,缺少分割符號,仔細檢查了下 和 都寫的很規矩啊。檢視另乙個可以編譯的資料夾的makefile,發現寫法完全相同,只是他對的很齊,心想難道這裡還有這種原因,抱著除錯時期懷疑一切...