pkg-config学习笔记

.pkg-config是啥? pkg: package

  pkg-config用来检索系统中安装库文件的信息,典型的作用是库的编译和连接。一般来说,如果库的头文件不在/usr/include目录中,那么在编译的时候需要用-I参数指定其路径。由于同一个库在不同系统上可能位于不同的目录下,用户安装库的时候也可以将库安装在不同的目录下,所以即使使用同一个库,由于库的路径的不同,造成了用-I参数指定的头文件的路径和在连接时使用-L参数指定lib库的路径都可能不同,其结果就是造成了编译命令界面的不统一。可能由于编译,连接的不一致,造成同一份程序从一台机器copy到另一台机器时就可能会出现问题。
      pkg-config 就是用来解决编译连接界面不统一问题的一个工具。基本思想:pkg-config是通过库提供的一个.pc文件获得库的各种必要信息的,包括版本信息、编译和连接需要的参数等。需要的时候可以通过pkg-config提供的参数(–cflags, –libs),将所需信息提取出来供编译和连接使用。这样,不管库文件安装在哪,通过库对应的.pc文件就可以准确定位,可以使用相同的编译和连接命令,使得编译和连接界面统一。

      

概括起来pkg-config提供了下面几个功能:

  1. 检查库的版本号。如果所需要的库的版本不满足要求,它会打印出错误信息,避免链接错误版本的库文件。
  2. 获得编译预处理参数,如宏定义,头文件的位置。
  3. 获得链接参数,如库及依赖的其它库的位置,文件名及其它一些连接参数。
  4. 自动加入所依赖的其它库的设置。

       例如:opencv.pc文件  路径/usr/local/lib/pkgconfig/opencv.pc 

  pkg-config学习笔记_第1张图片

  为了让pkgconfig可以找到你的pc文件,你要把pc文件所在的路径,设置在环境变量PKG_CONFIG_PATH 设置环境变量PKG_CONFIG_PATH方法举例如下:export PKG_CONFIG_PATH=/cv/lib:$PKG_CONFIG_PATH



2.如何安装?

      sudo apt-get install  pkg-config


3.应用

  注意先安装pkg-config再安装opencv。

linux:

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

    

譬如说我们运行以下命令:
pkg-config  查看gcc的CFLAGS参数

$pkg-config --libs --cflags opencv

会显示如下信息:

-I/usr/include/opencv -lcxcore -lcv -lhighgui -lcvaux



参考文献:

http://blog.csdn.net/earbao/article/details/17502581

http://blog.sina.com.cn/s/blog_8af6bbd10101hfdj.html

http://blog.csdn.net/chenhezhuyan/article/details/9455625

你可能感兴趣的:(liunx)