1. 程式人生 > >Makefile學習筆記

Makefile學習筆記

Makefile中的@:
通常,make會把其要執行的命令列在命令執行前輸出到螢幕上。當我們用“@”字元在命令列前,那麼,這個命令將不被make顯示出來,最具代表性的例子是,我們用這個功能來像螢幕顯示一些資訊。如: 
@echo 正在編譯XXX模組...... 
當make執行時,會輸出“正在編譯XXX模組......”字串,但不會輸出命令,如果沒有“@”,那麼,make將輸出: 
echo 正在編譯XXX模組...... 
正在編譯XXX模組...... 
如果make執行時,帶入make引數“-n”或“--just-print”,那麼其只是顯示命令,但不會執行命令,這個功能很有利於我們除錯我們的Makefile,看看我們書寫的命令是執行起來是什麼樣子的或是什麼順序的。 

而make引數“-s”或“--slient”則是全面禁止命令的顯示。 

Makefile中的特殊變數和常用引數:
特殊變數:
[email protected]: 規則中的目標名(也就是規則名)。
$<:  規則中的依賴專案,只代表規則所有依賴專案中的第一項!
$^:  規則中所有的依賴專案。
$?:  規則中時間新於目標的依賴專案


常用引數:
-f :       指定makefile的名稱,這樣,就可以不用makefile做為規則檔案的名字了。
-i :       使make程式忽略執行時的錯誤,繼續執行。
-v:       顯示make程式的版本號。
--help: 顯示make程式的引數幫助。

相關推薦

makefile學習筆記(1)

將學習makefile的過程記錄下,做個筆記,一是加深理解和記憶,二也方便日後遺忘了查詢,因為自己也是邊學邊記錄的,難免有很多問題,請多多指正和包涵 因為主要是學習makefile,所以開始只有一個main.c的函式,內容如下: 一.基本的makefile main.c #include

Makefile學習筆記

入職之前,在大學裡的程式設計還從來沒有接觸過Makefile,都是用已經整合好的軟體開發工具進行開發,只需要進行一些通過介面進行的配置,方能夠完成整個工程的編譯連結的過程,工作以後,發現需要根據Makefile來修改相關的設定,將整個編譯連結的過程變成可控的,所以慢慢學習了相關的知識,在這裡

Windows平臺下Makefile學習筆記

                作者:朱金燦        決心學習Makefile,一方面是為了解決編譯開原始碼時需要跨編譯平臺的問題(發現一些開原始碼已經在使用VS2010開發,但我還沒安裝VS2010,我想在VS2008下編譯這些程式碼);另一方面原始碼在伺服器端編譯的話,使用IDE的方式編譯還是不太方

Makefile學習筆記

Makefile中的@:通常,make會把其要執行的命令列在命令執行前輸出到螢幕上。當我們用“@”字元在命令列前,那麼,這個命令將不被make顯示出來,最具代表性的例子是,我們用這個功能來像螢幕顯示一些資訊。如: @echo 正在編譯XXX模組...... 當make執行

linux makefile學習筆記(1)

二、一個示例 正如前面所說的,如果一個工程有3個頭檔案,和8個C檔案,我們為了完成前面所述的那三個規則,我們的Makefile應該是下面的這個樣子的。 edit : main.o kbd.o command.o display.o / insert.o search.o files.o utils.occ -

linux makefile學習筆記(4)

四、巢狀執行make 在一些大的工程中,我們會把我們不同模組或是不同功能的原始檔放在不同的目錄中,我們可以在每個目錄中都書寫一個該目錄的Makefile,這有利於讓我們的Makefile變得更加地簡潔,而不至於把所有的東西全部寫在一個Makefile中,這樣會很難維護我們的Makefile,這個技術對於我們模

linux makefile學習筆記(5)

五、定義模式規則 你可以使用模式規則來定義一個隱含規則。一個模式規則就好像一個一般的規則,只是在規則中,目標的定義需要有"%"字元。"%"的意思是表示一個或多個任意字元。在依賴目標中同樣可以使用"%",只是依賴目標中的"%"的取值,取決於其目標。 有一點需要注意的是,"%"的展開發生在變數和函式的展開之後,變

makefile學習筆記1

Makefile的作用: makefile關係到整個過程的編譯規則,makefile制定了一系列規則來指定哪些檔案先編譯,哪些檔案後編譯,哪些編譯需要重新編譯,甚至進行更復雜的功能操作,makefile就像一個shell指令碼一樣,也可以執行作業系統的命令,也

Windows平臺下Makefile學習筆記(二)

作者:朱金燦        上次我們學習了怎麼用Makefile編譯一個控制檯工程。這次我們學習一下如何使用Makefile來編譯一個win 32的GUI程式。win 32的GUI程式其編譯過程大部分和控制檯程式一樣,不同的是多了一步RC編譯器將資原始檔編譯成re

Makefile學習筆記(一)

undefined reference to 'pthread_create' undefined reference to 'pthread_join' 問題原因: pthread 庫不是 Linux 系統預設的庫,連線時需要使用靜態庫 libpthread.a,

makefile學習筆記2

 1.makefile書寫規則: 規則包括兩個部分:依賴關係和生成目標的方法 makefile中第一條規則中的目標將被確立為最終目標,其他的目標都是被這個目標所連帶出來的,如果第一條規則中的目標有很多個,那麼,第一個目標灰成為最終目標。 main.o:main.cma

makefile學習筆記

本文記錄了makefile的簡單用法,在linux上編譯多個檔案的c程式可以用得上。 Makefile命名:Makefile或makefile makefile規則三要素: 目標,依賴,命令 方法1:這裡我們通過簡單的Makefile將下面幾個檔案生成可執

LCD實驗學習筆記(一):Makefile

主Makefile總領全域性的就這句—— lcd.bin: $(objs) 要生成lcd.bin,依賴於objs列舉的一堆檔案:head.o init.o nand.o interrupt.o serial.o lcddrv.o framebuffer.o lcdlib.o main.o l

【迅為iTop4412學習筆記】3. 編譯linux的Makefile修改

本節目標 如何把原本編譯進linux核心的LEDS取消掉 首先編譯一個最小的linux燒寫試試 解壓迅為提供過的原始碼包iTop4412_Kernel_3.0_20180604.tar.gz tar -xvf iTop4412*.ta

智慧閘道器韌體編譯學習筆記——Makefile

參考部落格:http://bbs.chinaunix.net/forum.php?mod=viewthread&tid=408225 一、makefile簡介 (1)程式的編譯和連結 為了更好的理解makefile的意義,有必要了解一些程式編譯的規範和

學習筆記Makefile的ifeq邏輯或,邏輯與的變通實現

(1)ifeq的用法          ifeq ($(變數名), 變數值 )            ........          else ifeq ($(..), ..)            .........          else           

“第09課第2節 u-boot分析之Makefile結構分析”之學習筆記

                        --start-group lib_generic/libgeneric.a board/100ask24x0/lib100ask24x0.a cpu/arm920t/libarm920t.a cpu/arm920t/s3c24x0/libs3c24x0.a l

caffe學習筆記1.1-- caffe的Makefile檔案

在本文中,描述一下caffe的Makefile檔案,這個檔案用於caffe的編譯;這裡不會把所有檔案都考過來,有些指令碼相似的會省略掉 檔案在caffe根目錄下,因為用到makefile.config中的變數,因此,在用到的時候我會給下說明 首先,是專案名稱 PROJE

Linux學習筆記——例說makefile 增加自定義共享庫

0.前言    從學習C語言開始就慢慢開始接觸makefile,查閱了很多的makefile的資料但總感覺沒有真正掌握makefile,如果自己動手寫一個makefile總覺得非常吃力。所以特意藉助部落格總結makefile的相關知識,通過例子說明makefile的具體用法。

Linux學習筆記——例說makefile 增加巨集定義

rm -rf test test.o ./test-add/test-add.o ./test-sub/test-sub.ogcc -Wall -std=gnu99 -DTEST_ADD -DTEST_SUB=1 -I./test-add -I./test-sub -o test.o -c test.cgcc