在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...