当前位置:   article > 正文

pkg-config的简单用法_pkg-config pkg_config_path

pkg-config pkg_config_path

背景

最近在开发C++的时候遇到了一个pkg-config的命令,使用方法类似于『g++ test.cc -o test `pkg-config --cflags --libs protobuf`』,比如这里依赖protobuf这个库,那么直接利用上面的命令就可以编译成功了,很神奇,不用指定include 和 libs就可以完成。

原理

  1. pkg-config会从以下路径读取一个名为PackageName.pc的文件,分别是:/usr/lib/pkgconfig, /usr/share/pkgconfig, /usr/local/lib/pkgconfig, /usr/local/share/pkgconfig来查找*.pc文件,除此之外,也会查找PKG_CONFIG_PATH环境变量指定的路径。
  2. 拿到PackageName.pc文件中的具体信息,一般文件的信息内容如下:
    在这里插入图片描述
    当我们使用pkg-config --cflags, --libs的时候,pkg-config会读取Cflags和Libs的信息并且返回出来。可以看到在文件中已经写好了依赖的头文件目录,动态库对应的目录和库名称, 其中动态库还会把依赖也写好,省得用户还要自己去搞依赖。

如何让自己的库拥有pkg-config

  • 编写PackageName.pc
  • 放在pkg-config可以访问的路径下
    PackageName.pc的语法不是很难,基本参考上面的protobuf.pc就可以实现自己需要的简单逻辑。
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小丑西瓜9/article/detail/201018
推荐阅读
相关标签
  

闽ICP备14008679号