pkg-config 用法
程序员文章站
2022-05-27 22:43:17
...
很多开源代码在makefile中会使用pkg-config,pkg-config是linux下获取系统库/模块信息的命令。
一. 用法
$ pkg-config --libs --cflags grpc -I/usr/local/include -L/usr/local/lib -lgrpc
查看grpc头文件路径及依赖库名称。
$ pkg-config --list-all grpc++_unsecure gRPC++ unsecure - C++ wrapper for gRPC without SSL libidn2 libidn2 - Library implementing IDNA2008 and TR46 gflags gflags - A commandline flags library that allows for distributed flags. libxslt libxslt - XSLT library version 2.
查看pkg-config所有模块信息。
二. 原理
当安装grpc库时会在/usr/local/lib/pkgconfig 下生成grpc.pc文件,该文件记录grpc库版本/路径等信息。
pkg-config在以下目录搜索pc文件,还可以通过环境变量PKG_CONFIG_PATH 指定pc搜索路径。
/usr/lib/pkgconfig
/usr/share/pkgconfig
/usr/local/lib/pkgconfig
/usr/local/share/pkgconfig
grpc++.pc文件内容也比较简单:
prefix=/usr/local exec_prefix=${prefix} includedir=${prefix}/include libdir=${exec_prefix}/lib Name: gRPC++ Description: C++ wrapper for gRPC Version: 1.18.0 Cflags: -I${includedir} Requires.private: grpc #依赖其它私有模块 Libs: -L${libdir} -lgrpc++ Libs.private: #模块依赖第三方私有库
grpc makefile:
LDFLAGS += -L/usr/local/lib `pkg-config --libs protobuf grpc++ grpc`\ -Wl,--no-as-needed -lgrpc++_reflection -Wl,--as-needed\ -ldl