Linux下書寫乙個簡單的makefile

2021-08-16 13:07:55 字數 1431 閱讀 3620

在linux下我們經常需要「編譯」,而談起編譯就離不開 makefile 了,簡單來說 makefile 是編譯的乙個引導檔案,關於它的詳細介紹網上有許多資料,這裡只為介紹如何書寫乙個簡單的 makefile 。

sources = 

include =

libs =

objects = $(sources:.cpp=.o)

target =

$(target) : $(objects)

g++ -o $(target) $(objects) $(include) $(libs)

$(objects) : $(sources)

g++ -c $(sources)

clean:

rm $(objects) $(target)

sources: 我們需要參與進編譯的原始碼檔案,如.c、.cpp......

include: 外部包含的標頭檔案,如果在當前資料夾下,則不用新增

libs: 編譯涉及到的庫

objects: 編譯產生的目標檔案,也就是.o檔案,我們可以把編譯用到的源檔名加上字尾.o,如 a.o b.o......我們看到上面使用了 $(sources:.cpp=.o),這其實相當乙個命令,把原始檔的 .cpp字尾改為 .o

target: 就是生成可執行檔案的名字

$(target) : $(objects): 對編譯好的檔案進行連線以生成可執行檔案,連線時要將標頭檔案、庫新增進來

$(objects) : $(sources): 對原始檔進行編譯

clean: 清除編譯產生的目標檔案和可執行檔案

上面我們的編譯器使用的是 g++,根據需要也可修改為 gcc或者其他編譯器。

下面提供乙個編譯opencv常用的 makefile 檔案

sources = main.cpp

include = $(shell pkg-config --cflags opencv)

libs = $(shell pkg-config --libs opencv)

objects = $(sources:.cpp=.o)

target = ***

$(target) : $(objects)

g++ -o $(target) $(objects) $(include) $(libs)

$(objects) : $(sources)

g++ -c $(sources)

clean:

rm $(objects) $(target)

vue面試題 在vue下書寫乙個post請求

vue開發過程中,總會碰到一些問題,當然任何問題都不能阻止我們前進的腳步,話不多說,下面是我在開發過程中請求引數所碰到的問題 1.在暫時沒有後台資料的時候,post請求的引數大多會以 name a,age b 的格式去寫 import axios from axios axios.post url,...

Ma的,又乙個部落格

幾個月前,看到了blogchina上的牛人的blog,也看到了csdn上一大群牛人的blog,心中自然想模仿起來。沒想到接連使用了2個blog站點。那兩個blog站點竟相繼在很短的時間內無法登陸。時至今日連網域名稱都解析不了了。可惜我在那兩個blog上的一些文章也隨之而去。csdn也開了blog了。...

書寫乙個儲存過程

delimiter console 轉換為 定義儲存過程 引數 in輸入引數 out輸出引數 row count 返回上一條修改型別sql delete,insert,update 的影響條數 row count 0 未修改資料 0 表示sql出錯 0 表示修改了行數 create procedur...