當程式依賴的外部庫檔案和標頭檔案相對比較多時,每次建立工程都需要對這些庫檔案進行配置,這個過程比較繁瑣,所以pkg-config工具包被開發出來,解決這乙個問題。本文主要介紹如何使用pkg-config工具包,並給出opencv和armadillo軟體庫才用pkg-config配置的例子。本文實在ubuntu14.04的基礎上進行測試。
1. 安裝pkg-config工具包
如果ubuntu系統中沒有pkg-config工具包,可以通過下面的**進行安裝
sudo apt-get install pkg-config
2.設定pkg-config系統環境變數
開啟/etc/bash.bashrc檔案,在最後加入
pkg_config_path=$pkg_config_path:/usr/local/lib/pkgconfig
export pkg_config_path
系統開機後/etc/bash.bashrc檔案中的資訊會自動被系統檢測,pkg_config_path會自動加入到系統變數中
上面的路徑/usr/local/lib/pkgconfig 是存放opencv.pc和armadillo.pc等類似配置檔案的地方。這樣pkg-config才能夠正確的找到相關庫檔案的配置資訊。
3. opencv.pc檔案解析
# package information for pkg-config
prefix=/usr/local
exec_prefix=$
libdir=
includedir_old=$/include/opencv
includedir_new=$/include
name: opencv
description: open source computer vision library
version: 2.4.10
libs: $/lib/libopencv_calib3d.so $/lib/libopencv_contrib.so $/lib/libopencv_core.so
$/lib/libopencv_features2d.so $/lib/libopencv_flann.so $/lib/libopencv_gpu.so
$/lib/libopencv_highgui.so $/lib/libopencv_imgproc.so $/lib/libopencv_legacy.so
$/lib/libopencv_ml.so $/lib/libopencv_nonfree.so $/lib/libopencv_objdetect.so
$/lib/libopencv_ocl.so $/lib/libopencv_photo.so $/lib/libopencv_stitching.so
$/lib/libopencv_superres.so $/lib/libopencv_ts.a $/lib/libopencv_video.so
$/lib/libopencv_videostab.so -lrt -lpthread -lm -ldl
cflags: -i$ -i$# package information for pkg-config
上面的檔案是ubuntu中
安裝opencv庫後自動生成的檔案,其中libs標號後面給出了opencv常用的庫檔案資訊。cflags標號後面給出opencv的標頭檔案路徑資訊
在每次編譯使用了opencv庫的工程時可以執行下面的**:
g++ main.cpp -o main `pkg-config --cflags --libs opencv`
4.編寫armadillo.pc檔案
仿照opencv.pc檔案,這裡編寫了armadillo.pc,並將其複製到/usr/local/lib/pkgconfig目錄下,這樣就可以使用pkg-config工具編譯使用了armadillo
庫的工程。
#package information for pkg-config
prefix=/usr/local
exec_prefix=$
libdir=$/lib
includedir=$/include/armadillo
name: armadillo
description: c++ linear algebra library
version: 6.100.0
libs: -l$ -larpack -llapack -lopenblas -lf2c -lgfortran
cflags: -i$
如果乙個工程即使用了opencv也使用
armadillo
,編譯時只要才用下面**即可, 使用很方便。
g++ globalpb.cpp -o globalpb -o2 `pkg-config --cflags --libs opencv armadillo`
5.總結
使用pkg-config工具包可以方便工程使用多種庫檔案時的編譯工作。只需編寫好每個庫的.pc檔案,並複製到pkg_config_path環境變數制定的目錄,並可以正常使用。
拷貝工具包
常用工具包封裝.懶得引各種雜七八的包,輕量級包.cglib還是需要的 scope provided 1.0.0 copyutils beancopier封裝.提供簡單的單一複製與list複製.不支援自定義建構函式的類的複製.abc abc copyutil copysigle abc class o...
Linux VMware tools工具包的安裝
啟動vm中的linux,選擇vmware workstation程式選單中vm install vmware tools.執行 mkdir mnt cdrom mount o ro dev cdrom mnt cdrom vmtools的安裝檔案放在vmware虛擬的cdrom中,首先要mount上...
PLSQL內建工具包
動態sql 不是在designer time寫的sql,而是可以在執行時臨時拼接起來的sql語句 例如 create or replace procedure delete all rows p tab name in varchar2,p rows del out number iscursor ...