pkg-config 用法简介

pkg-config 用法简介

当我们写代码时,经常会调用第三方的库。这些第三方的库的安装路径在每台电脑上可能都会不同。所以如果我们把这些库的路径写死,那么别人拿到我们的代码编译时就会遇到各种问题。为了解决这个问题,就有了 pkg-config。这里要多说一句 pkg-config 是个 linux 下的工具,在 windows 下虽然也能用,但是用的人很少。

简单的说 pkg-config 维护了一个保存各个代码库的路径的数据库。当然这个”数据库” 非常的简单,其实就是一个特殊的目录,这个目录中有一系列的以 “.pc” 为后缀的文件。

比如我的电脑里安装了 MSYS2。 在 msys2 上安装了 mingw64 的 pkg-config。 那么这些 “.pc” 文件就都在 “msys64\mingw64\lib\pkgconfig” 这个目录下。

我们可以打开一个 “.pc” 文件来看看。比如 lib.pc 文件。

prefix=/mingw64
exec_prefix=${prefix}
libdir=${exec_prefix}/lib
sharedlibdir=${exec_prefix}/bin
includedir=${prefix}/include

Name: zlib
Description: zlib compression library
Version: 1.2.11

Requires:
Libs: -L${libdir} -lz
Cflags: -I${includedir}

内容很简单,最后两行是关键信息,告诉我们应该如何包含这个库。

我们应该如何使用这个 pkg-config 呢。

pkg-config 有两个最常用的命令行选项,分别是 “–libs” 和 “–cflags” ,我们可以分别执行一下。

$ pkg-config.exe --cflags zlib
-ID:/msys64/mingw64/include

$ pkg-config.exe --libs zlib
-LD:/msys64/mingw64/lib -lz

看到这里,如何使用 pkg-config 就一目了然了。比如下面的命令行,其中 pkg-config --cflags --libs zlib 自动被替换为 “-ID:/msys64/mingw64/include -LD:/msys64/mingw64/lib -lz
”。

$gcc main.c `pkg-config --cflags --libs zlib` -o main

当然通常我们会将 pkg-config 放到 makefile 中。如果使用 qt,可以在 pro 文件中这样写:

CONFIG += link_pkgconfig
PKGCONFIG += zlib
  • 4
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值