在Makefile文件中使用pkg-config

以opencv爲例,經過源碼的方式生成庫時會產生一個opencv.pc的文件,該文件是提供給pkg-config使用的。c++

pkg-config默認會從/usr/lib/pkgconfig/ 目錄下查找*.pc文件,從該文件中獲取對應庫的信息。shell

假設我電腦上安裝了相同的庫不一樣的版本,好比opencv,一個版本爲3.3.1,另外一個是3.4.3,則重命令opencv.pc分別爲opencv331.pc和opencv343.pc並放置到/usr/lib/pkgconfig/目錄下。bash

如下兩句分別查看不一樣opencv的庫信息, --cflag對應的是頭文件路徑   --libs對應的庫名稱。c++11

pkg-config --cflags --lib opencv343

pkg-config --cflags --lib opencv313

一般在編寫Makefile能夠使用pkg-config減小工做量:code

#ROOT=$(shell pwd)
ROOT=.
CFLAGS=-Wall -g -std=c++11 `pkg-config --cflags --libs opencv realsense2`
CC=g++
TARGET=vision

SRCS=$(shell ls $(ROOT)/*.cpp)

OBJS = $(SRCS:.cpp=.o)

$(TARGET):$(OBJS)
	@$(CC) -o $@ $^ $(CFLAGS) 


%.o:%.c
	$(CC) $(CFLAGS) -o $@ -c $<

clean:
	@rm -rf $(TARGET) $(OBJS)
相關文章
相關標籤/搜索