日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

linux 安装pkg文件,Linux的pkg-config命令

發(fā)布時間:2023/12/20 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 linux 安装pkg文件,Linux的pkg-config命令 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

1. pkg-config介紹

pkg-config是一個在源代碼編譯時查詢已安裝的庫的使用接口的計算機工具軟件。pkg-config原本是設計用于Linux的,但現(xiàn)在在各個版本的BSD、windows、Mac OS X和Solaris上都有著可用的版本。

它輸出已安裝的庫的相關信息,包括:1. C/C++編譯器需要的輸入?yún)?shù);2. 鏈接器需要的輸入?yún)?shù);3. 已安裝軟件包的版本信息。

當安裝一個庫時(例如從RPM,deb或其他二進制包管理系統(tǒng)),會包括一個后綴名為pc的文件,它會放入某個文件夾下(依賴于你的系統(tǒng)設置)。例如,在Linux為該軟件的庫文件所在文件夾lib之下的子文件夾pkgconfig。把該子文件夾加入pkg-config的環(huán)境變量PKG_CONFIG_PATH作為搜索路徑,例如在bash配置文件中加入:

$ export PKG_CONFIG_PATH=/usr/local/庫名字/lib/pkgconfig:$PKG_CONFIG_PATH

在這個.pc文件里包含有數(shù)個條目。這些條目通常包含用于其他使用這個庫的程序編譯時需要的庫設置,以及頭文件的位置,版本信息和一個簡介。以OpenCV為例,在Mac上pkgconfig目錄所在的路徑為:/usr/local/Cellar/opencv3/3.1.0_4/lib/pkgconfig/,目錄下的.pc文件為opencv.pc,其內容為:

# Package Information for pkg-config

prefix=/usr/local/Cellar/opencv3/3.1.0_4

exec_prefix=${prefix}

libdir=${exec_prefix}/lib

includedir_old=${prefix}/include/opencv

includedir_new=${prefix}/include

Name: 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)下編寫C、C++程序時,編譯時需要包含頭文件,鏈接時需要庫文件,但安裝一些第三方庫之后不知道對應的include文件和lib文件的位置,此時就需要pkg-config了。以opencv為例:

查看頭文件位置

# 命令形式:pkg-config --cflags software_name

# demo

$ pkg-config --cflags opencv

-I/usr/local/Cellar/opencv3/3.1.0_4/include/opencv -I/usr/local/Cellar/opencv3/3.1.0_4/include

查看lib庫的位置

# 命令形式:pkg-config --libs software_name

# demo

$ pkg-config --libs opencv

-L/usr/local/Cellar/opencv3/3.1.0_4/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

編譯程序,編譯DispalyImage.cpp文件

DispalyImage.cpp文件內容為:

#include

#include

#include

#include

using namespace std;

using namespace cv;

int main()

{

Mat img = imread("./lena.bmp");

if(!img.data)

{

return -1;

}

namedWindow("Lena", CV_WINDOW_AUTOSIZE);

imshow("Lena", img);

waitKey();

return 0;

}

編譯,鏈接生成可執(zhí)行程序DisplayImage:

$ g++ -o DisplayImage $(pkg-config --cflags --libs opencv) DisplayImage.cpp

運行結果:

Lena

參考資料:

總結

以上是生活随笔為你收集整理的linux 安装pkg文件,Linux的pkg-config命令的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。