`
tcspecial
  • 浏览: 896205 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

pkg-config 用法

    博客分类:
  • OS
阅读更多

 

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

 

 

 

 

 

 

 

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics