pkg-config到底是个啥

12 篇文章 2 订阅
2 篇文章 0 订阅

Pkg-config到底是个啥


😄

Pkgconfig其实跟使用的CMakeList文件中的配置文件作用是一样的,都是为了在需要使用第三方头文件或库文件的时候告诉编译器头文件和库文件的位置

百度百科的解释是

pkg-config 是一个在源代码编译时查询已安装的库的使用接口的计算机工具软件。pkg-config原本是设计用于Linux的,但现在在各个版本的BSD、windows、Mac OS X和Solaris上都有着可用的版本。

使用方法

gcc -o test test.c $(pkg-config --libs --cflags libpng)

当安装一个库的时候,会有一个.pc文件,通过pc文件就能知道所需要的头文件和库所在的位置。

其中cflags指定的是头文件

其中libs指定的是库文件

如何找到pc文件???

在linux系统下面,默认查找的路径是/usr/lib64/pkgconfig

当然可以手动指定,也就是通过设置PKG_CONFIG_PATH这个环境变量来进行指定路径下查找.pc文件

makefile中使用pkgconfig

在Cmake的文件中的时候可以使用FindPkgConfig进行查找pkg-config模块

PKGCONFIG(package includedir libdir linkflags cflags)

例如

PKGCONFIG(libart-2.0 LIBART_INCLUDE_DIR LIBART_LINK_DIR LIBART_LINK_FLAGS LIBART_CFLAGS) 

makefile书写规则

makefile使用

CFLAGS=-Wall -g -std=c++11 `pkg-config --cflags --libs opencv realsense2`

如何编写PC文件

prefix=/home/zhongsy/Downloads/Game/gaminganywhere/deps.posix
exec_prefix=${prefix}
libdir=${prefix}/lib
includedir=${prefix}/include

Name: libavdevice
Description: FFmpeg device handling library
Version: 56.4.100
Requires: 
Requires.private: libavfilter >= 5.40.101, libswscale >= 3.1.101, libpostproc >= 53.3.100, libavformat >= 56.40.101, libavcodec >= 56.60.100, libswresample >= 1.2.101, libavutil >= 54.31.100
Conflicts:
Libs: -L${libdir}  -lavdevice 
Libs.private: -lXv -lX11 -lXext -lxcb -lxcb-shm -lxcb -lxcb-xfixes -lxcb-render -lxcb-shape -lxcb -lxcb-shape -lxcb -lX11 -lsndio -lasound -lxvidcore -L/home/zhongsy/Downloads/Game/gaminganywhere/deps.posix/lib -lx265 -lx264 -lvpx -lm -lvpx -lm -lvpx -lm -lvpx -lm -lvorbisenc -lvorbis -logg -ltheoraenc -ltheoradec -logg -lopus -lmp3lame -lm -llzma -lbz2 -lz -pthread
Cflags: -I${includedir}

pc文件中主要有的是一下几个变量

  1. Name 名称
  2. Description 描述
  3. version 版本
  4. cflags 所需要使用头文件的目录路径
  5. libs 所需要库文件的目录路径

参考

Cmake findpakage详解

Cmake教程

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值