linux ubuntu pkg-config工具的使用(源代码编译库接口查询工具)
后更。。。
文章目錄
- 1. pkg-config介紹
- 2. pkg-config的使用
1. pkg-config介紹
pkg-config是一個(gè)在源代碼編譯時(shí)查詢(xún)已安裝的庫(kù)的使用接口的計(jì)算機(jī)工具軟件。pkg-config原本是設(shè)計(jì)用于Linux的,但現(xiàn)在在各個(gè)版本的BSD、windows、Mac OS X和Solaris上都有著可用的版本。
它輸出已安裝的庫(kù)的相關(guān)信息,包括:
當(dāng)安裝一個(gè)庫(kù)時(shí)(例如從RPM,deb或其他二進(jìn)制包管理系統(tǒng)),會(huì)包括一個(gè)后綴名為pc的文件,它會(huì)放入某個(gè)文件夾下(依賴(lài)于你的系統(tǒng)設(shè)置)。例如,在Linux為該軟件的庫(kù)文件所在文件夾lib之下的子文件夾pkgconfig。把該子文件夾加入pkg-config的環(huán)境變量PKG_CONFIG_PATH作為搜索路徑,例如在bash配置文件中加入:
$ export PKG_CONFIG_PATH=/usr/local/[庫(kù)名字]/lib/pkgconfig:$PKG_CONFIG_PATH在這個(gè).pc文件里包含有數(shù)個(gè)條目。這些條目通常包含用于其他使用這個(gè)庫(kù)的程序編譯時(shí)需要的庫(kù)設(shè)置,以及頭文件的位置,版本信息和一個(gè)簡(jiǎn)介。以O(shè)penCV為例,在Mac上pkgconfig目錄所在的路徑為:/usr/local/Cellar/opencv3/3.1.0_4/lib/pkgconfig/,目錄下的.pc文件為opencv.pc,其內(nèi)容為:
# Package Information for pkg-configprefix=/usr/local/Cellar/opencv3/3.1.0_4 exec_prefix=${prefix} libdir=${exec_prefix}/lib includedir_old=${prefix}/include/opencv includedir_new=${prefix}/includeName: OpenCV Description: Open Source Computer Vision Library Version: 3.1.0 Libs: -L${exec_prefix}/lib -lopencv_shape -lopencv_stitching -lopencv_objdetect -lopencv_superres -lopencv_videostab -lippicv -lopencv_calib3d -lopencv_features2d -lopencv_highgui -lopencv_videoio -lopencv_imgcodecs -lopencv_video -lopencv_photo -lopencv_ml -lopencv_imgproc -lopencv_flann -lopencv_core Libs.private: -framework OpenCL -framework Cocoa -L/usr/local/opt/jpeg/lib -ljpeg -L/usr/local/lib -lwebp -lpng -ltiff -lImath -lIlmImf -lIex -lHalf -lIlmThread -L/usr/lib -lz -framework QTKit -framework QuartzCore -framework AppKit Cflags: -I${includedir_old} -I${includedir_new}2. pkg-config的使用
在Linux/Mac系統(tǒng)下編寫(xiě)C、C++程序時(shí),編譯時(shí)需要包含頭文件,鏈接時(shí)需要庫(kù)文件,但安裝一些第三方庫(kù)之后不知道對(duì)應(yīng)的include文件和lib文件的位置,此時(shí)就需要pkg-config了。以opencv為例:
- 查看頭文件位置
- 查看lib庫(kù)的位置
- 編譯程序,編譯DispalyImage.cpp文件
DispalyImage.cpp文件內(nèi)容為:
編譯,鏈接生成可執(zhí)行程序DisplayImage:
$ g++ -o DisplayImage $(pkg-config --cflags --libs opencv) DisplayImage.cpp運(yùn)行結(jié)果:
參考文章:Linux的pkg-config命令
總結(jié)
以上是生活随笔為你收集整理的linux ubuntu pkg-config工具的使用(源代码编译库接口查询工具)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: C语言socket connect()函
- 下一篇: JSON文件学习(jsonc、json-