Ubuntu 16.04使用pkg-config 配置opencv环境 头文件及库

引言

  • 最近在学习海思3559上的opencv程序开发,下载了opencv4.0.1的源码并进行了编译,其中使用了pkg-config配置opencv的头文件和库文件路径,现在记录分享一下过程。

pkg-config介绍

  • 通常我们在写程序时需要依赖一些库以及头文件,比如我今天用到的opencv,但库的安装位置可能不同,这时就需要一个工具能够管理并能搜索这些库的路径(头文件路径/include,库文件路径 /lib)。

  • pkg-config 就是通过库提供的一个 .pc 文件获得库的各种必要信息的,包括版本信息、编译和连接需要的参数等。通过
    pkg-config 提供的参数(–cflags, –libs),将所需信息提取出来供编译和连接使用。这样,不管库文件安装在哪,通过库对应的.pc文件就可以准确定位。

  • 它提供的主要功能有:

  • <1> 检查库的版本号。如果所需库的版本不满足要求,打印出错误信息,避免连接错误版本的库文件。

  • <2> 获得编译预处理参数,如宏定义,头文件的路径。

  • <3> 获得编译参数,如库及其依赖的其他库的位置,文件名及其他一些连接参数。

  • <4> 自动加入所依赖的其他库的设置。

PKG_CONFIG_PATH环境变量配置

  • pkg-config 默认会搜索 /usr/lib/pkgconfig 和/usr/share/pkgconfig下的 .pc 配置文件,若我们源码编译的库的路径不在 pkg-config 的搜索路径下,则可以通过环境变量 PKG_CONFIG_PATH 将自定义的路径添加到 pkg-config 的搜索路径,我已经配置过opencv,所以能够看到opencv的介绍
 - `pkg-config --list-all | grep "open"
opencv                         OpenCV - Open Source Computer Vision Library
QtOpenGL                       Qtopengl - Qtopengl Library
openssl                        OpenSSL - Secure Sockets Layer and cryptography `

配置opencv.pc

  • 以我个人的路径介绍,具体情况需要根据个人位置修改。
  • 我的opencv4.0.1 make install 的路径通过cmake-gui 配置在**/opencv-4.0.1/install/下
  • 所以我在终端中执行:
 - cd **/opencv-4.0.1/install/lib/
 - mkdir pkgconfig
 - cd pkgconfig/
 - vi opencv.pc  
 - #pkg-config根据opencv.pc中的内容配置opencv的路径和信息,具体如下面所示 
  • opencv.pc
    **/opencv-4.0.1/install/ 是我个人安装路径,自己进行修改
prefix=**/opencv-4.0.1/install/
exec_prefix=${prefix}
includedir=**/opencv-4.0.1/install/include/
libdir=**/opencv-4.0.1/install/lib/

Name: OpenCV
Description: Open Source Computer Vision Library
Version: 4.0.1
Libs: -L${exec_prefix}/lib -lopencv_stitching -lopencv_superres -lopencv_videostab -lopencv_aruco -lopencv_bgsegm -lopencv_bioinspired -lopencv_ccalib -lopencv_dnn_objdetect -lopencv_dpm -lopencv_face -lopencv_photo -lopencv_freetype -lopencv_fuzzy -lopencv_hdf -lopencv_hfs -lopencv_img_hash -lopencv_line_descriptor -lopencv_optflow -lopencv_reg -lopencv_rgbd -lopencv_saliency -lopencv_stereo -lopencv_structured_light -lopencv_phase_unwrapping -lopencv_surface_matching -lopencv_tracking -lopencv_datasets -lopencv_text -lopencv_dnn -lopencv_plot -lopencv_xfeatures2d -lopencv_shape -lopencv_video -lopencv_ml -lopencv_ximgproc -lopencv_calib3d -lopencv_features2d -lopencv_highgui -lopencv_videoio -lopencv_flann -lopencv_xobjdetect -lopencv_imgcodecs -lopencv_objdetect -lopencv_xphoto -lopencv_imgproc -lopencv_core
Libs.private: -ldl -lm -lpthread -lrt
Cflags: -I${includedir}

将环境变量添加至~/.bashrc

vi ~/.bashrc
#在文档最后添加
export PKG_CONFIG_PATH="**/opencv-4.0.1/install/lib/pkgconfig:$PKG_CONFIG_PATH"

然后使环境变量生效

source ~/.bashrc
#查看是否生效
echo $PKG_CONFIG_PATH

后续编译的时候就可以通过

`pkg-config --cflags opencv` `pkg-config --libs opencv`使用头文件和库文件
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值