編譯工具 makefile

2021-08-28 06:23:58 字數 896 閱讀 9252

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,發現寫法完全相同,只是他對的很齊,心想難道這裡還有這種原因,抱著除錯時期懷疑一切...