pkg-config学习笔记

    xiaoxiao2021-12-14  17

    1.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提供了下面几个功能:

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

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

     

      为了让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

    转载请注明原文地址: https://ju.6miu.com/read-965535.html

    最新回复(0)