欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

pkg-config 用法

程序员文章站 2022-05-27 22:40:06
...

 

很多开源代码在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

 

 

 

 

 

 

 

 

相关标签: pkg-config grpc