`
tcspecial
  • 浏览: 911449 次
  • 性别: 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

 

 

 

 

 

 

 

 

分享到:
评论

相关推荐

    pkg-config压缩包

    首先,pkg-config的基本用法是在编译命令中通过`pkg-config --cflags`和`pkg-config --libs`来获取库的编译和链接参数。例如,如果你正在使用GLib库,你可以这样操作: ```bash gcc your_source.c $(pkg-config --...

    pkg-config_0.23-3_win64

    pkg-config 是一个在软件开发中广泛使用的工具,尤其在Linux和类Unix系统中,它用于管理编译和链接时所需的库依赖关系。然而,这里我们关注的是“pkg-config_0.23-3_win64”这个针对Windows x64平台的版本。pkg-...

    pkg-config-0.29.2.tar

    3. `man/` 目录:包含 pkg-config 的手册页,用于详细介绍其使用方法。 4. `Makefile.am` 和其他 Automake 文件:用于构建过程的自动化。 为了在你的系统上安装这个版本的 pkg-config,你需要先运行 `./configure`...

    pkg_config的使用.zip

    在IT行业中,尤其是在软件开发领域,工具的合理使用可以极大地提高效率。...通过解压并安装提供的压缩包文件,按照`使用方法.txt`中的指导,你可以顺利地在Windows上利用`pkg-config`来编译带有硬编码功能的FFmpeg。

    构建metadeps-从Cargo.toml中的声明性依赖项运行pkg-config-Rust开发

    用法在Cargo.toml中,将以下内容添加到您的[build-dependencies]中:metadeps =“ 1.1”然后,要声明对testlib> = 1.2的依赖关系以及对testdata> = 4.5的条件性依赖关系,请添加以下部分: [package.metadata.pkg-...

    FFmpeg安装文件,用于linux编译安装

    FFmpeg是一款强大的开源多媒体处理工具,它包含了音频和视频的编码、解码、转换、流化等功能,广泛应用于音视频处理、直播系统搭建等领域...理解FFmpeg的安装过程和基本用法对于在Linux环境中从事音视频工作至关重要。

    细节增强的matlab代码-qpOASES:官方svn储存库的克隆,带有pkg-config安装

    "带有pkg-config安装"提示我们,这个项目包含了使用pkg-config工具进行安装的指导,pkg-config是一个方便的工具,用于管理和构建依赖于外部库的软件,它可以简化在MATLAB环境中配置qpOASES的步骤。 【描述解析】 ...

    Python库 | pkgconfig-1.5.3-py2.py3-none-any.whl

    通常,在C语言开发中,我们使用`pkg-config`命令行工具来处理这些信息。而Python的`pkgconfig`库则提供了一个方便的接口,使得在Python代码中可以直接调用这些信息,避免了手动配置的繁琐过程。 在Python项目中,`....

    mbDevConf-snapshot-0.70B2-src-pkg-源码.rar

    3. **构建工具**:如Maven、Gradle或Ant的使用方法及其配置。 4. **测试策略**:观察如何编写和组织测试用例,以及如何自动化测试。 5. **设计模式**:识别和学习源码中应用的设计模式,提升编程技巧。 6. **版本...

    编译qte4.6.3出现的问题解决方法

    解决方法是检查pkg-config是否已安装。如果已安装,可以使用以下命令强制使用pkg-config: ```bash ./configure -force-pkg-config -prefix /usr/local/Trolltech/QtEmbedded-4.6.3-arm/ ... 其他参数 ... ``` 问题...

    gcc命令行详解[参考].pdf

    使用方法如下: `pkg-config --list-all` 这将列出所有支持的开发包。 `pkg-config pagName --lib` 这将生成指定库的链接参数。 GCC 命令行是一个功能强大且灵活的编译器接口,提供了多种选项和参数来控制编译...

    eslint-config-airbnb

    eslint-config-airbnb 这个包提供了 Airbnb 的 .eslintrc 作为可扩展的共享配置。 用法 我们导出三个 ESLint 配置供您使用。 eslint-config-airbnb ... export PKG=eslint-config-airbnb ; npm info " $PKG @lates

    linux下更新GTK+到3.x.pdf

    对于程序,如pkg-config,使用`--version`参数查看版本。 - 对于库,如GTK+ 2.0,用`pkg-config --modversion gtk+-2.0`查看版本,`--cflags --libs gtk+-2.0`可获取编译和链接选项,以了解其安装位置。 4. **安装...

    ffmpeg-wasm-video-to-picture:借助ffmpeg + wasm实现网页截取视频帧图像功能

    借助ffmpeg + wasm实现网页截取视频帧功能 ...使用方法,传递一个视频路径,就会在本地生成一个图片 ./simple mountain.mp4 2. cfile/web.c proccess.c process.h 这个是网页版的核心C代码,使用以下命令编译成wasm

    gcc帮助手册

    使用`pkg-config pkgName --libs --cflags`获取所需包的链接参数,其中`pkgName`需通过`pkg-config --list-all`查询确认。 **实践应用**:在编译命令中嵌入`xxxx-config`或`pkg-config`命令,如: ``` gcc gtktest....

    GTK+程序设计教程,本教程所用的编程语言为 C 语言。并且整个教程中方法已经在 Linux 中测试通过

    在编译GTK+应用程序时,我们可以使用pkg-config命令来获取所需要的编译信息。譬如: gcc -o simple simple.c `pkg-config --libs --cflags gtk+-2.0` 这个命令将编译一个简单的源文件“simple.c”,并将其与GTK+...

    activetick-addon:node.js的activetick.com C ++绑定

    应该适用于所有版本的Node.js用法Mac OSX 安装依赖项: npm install -g node-gyp brew install protobuf pkg-config用法Ubuntu sudo apt-get install libprotobuf-dev protobuf-compiler pkg-config例子使用您的...

    pkg-conf:从最近的package.json获取命名空间的配置

    例如, 使用package.json中的xo名称空间,而使用eslintConfig 。 还有更多工具支持此功能,例如 , , 等。 安装 $ npm install pkg-conf 用法 { " name " : " some-package " , " version " : " 1.0.0 " , " ...

    Linux下CC++编译器gcc使用简介.doc

    Linux 下 C/C++ 编译器 GCC 使用简介 GCC(GNU Compiler Collection)是 Linux 下最常用的 C/C++ 编译器,本文将详细介绍 ...使用方法与 xxx-config 相似,例如: `pkg-config --libs` 这将生成相关库的链接参数。

Global site tag (gtag.js) - Google Analytics