很多开源代码在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 --cflags`和`pkg-config --libs`来获取库的编译和链接参数。例如,如果你正在使用GLib库,你可以这样操作: ```bash gcc your_source.c $(pkg-config --...
pkg-config 是一个在软件开发中广泛使用的工具,尤其在Linux和类Unix系统中,它用于管理编译和链接时所需的库依赖关系。然而,这里我们关注的是“pkg-config_0.23-3_win64”这个针对Windows x64平台的版本。pkg-...
3. `man/` 目录:包含 pkg-config 的手册页,用于详细介绍其使用方法。 4. `Makefile.am` 和其他 Automake 文件:用于构建过程的自动化。 为了在你的系统上安装这个版本的 pkg-config,你需要先运行 `./configure`...
在IT行业中,尤其是在软件开发领域,工具的合理使用可以极大地提高效率。...通过解压并安装提供的压缩包文件,按照`使用方法.txt`中的指导,你可以顺利地在Windows上利用`pkg-config`来编译带有硬编码功能的FFmpeg。
用法在Cargo.toml中,将以下内容添加到您的[build-dependencies]中:metadeps =“ 1.1”然后,要声明对testlib> = 1.2的依赖关系以及对testdata> = 4.5的条件性依赖关系,请添加以下部分: [package.metadata.pkg-...
FFmpeg是一款强大的开源多媒体处理工具,它包含了音频和视频的编码、解码、转换、流化等功能,广泛应用于音视频处理、直播系统搭建等领域...理解FFmpeg的安装过程和基本用法对于在Linux环境中从事音视频工作至关重要。
"带有pkg-config安装"提示我们,这个项目包含了使用pkg-config工具进行安装的指导,pkg-config是一个方便的工具,用于管理和构建依赖于外部库的软件,它可以简化在MATLAB环境中配置qpOASES的步骤。 【描述解析】 ...
通常,在C语言开发中,我们使用`pkg-config`命令行工具来处理这些信息。而Python的`pkgconfig`库则提供了一个方便的接口,使得在Python代码中可以直接调用这些信息,避免了手动配置的繁琐过程。 在Python项目中,`....
3. **构建工具**:如Maven、Gradle或Ant的使用方法及其配置。 4. **测试策略**:观察如何编写和组织测试用例,以及如何自动化测试。 5. **设计模式**:识别和学习源码中应用的设计模式,提升编程技巧。 6. **版本...
解决方法是检查pkg-config是否已安装。如果已安装,可以使用以下命令强制使用pkg-config: ```bash ./configure -force-pkg-config -prefix /usr/local/Trolltech/QtEmbedded-4.6.3-arm/ ... 其他参数 ... ``` 问题...
使用方法如下: `pkg-config --list-all` 这将列出所有支持的开发包。 `pkg-config pagName --lib` 这将生成指定库的链接参数。 GCC 命令行是一个功能强大且灵活的编译器接口,提供了多种选项和参数来控制编译...
eslint-config-airbnb 这个包提供了 Airbnb 的 .eslintrc 作为可扩展的共享配置。 用法 我们导出三个 ESLint 配置供您使用。 eslint-config-airbnb ... export PKG=eslint-config-airbnb ; npm info " $PKG @lates
这将生成`my_message.pb.h`和`my_message.pb.cc`两个文件,包含C++类和必要的方法。在C++程序中,可以直接使用这些类进行数据的序列化和反序列化操作。 protobuf的优势在于其高效性和跨平台性。它生成的二进制格式...
对于程序,如pkg-config,使用`--version`参数查看版本。 - 对于库,如GTK+ 2.0,用`pkg-config --modversion gtk+-2.0`查看版本,`--cflags --libs gtk+-2.0`可获取编译和链接选项,以了解其安装位置。 4. **安装...
用法: Usage: pkg [OPTIONS] [package.yaml] Application Options: --name= package name --version= package version --arch= package arch --deb build a .deb package --rpm build a .rpm package
借助ffmpeg + wasm实现网页截取视频帧功能 ...使用方法,传递一个视频路径,就会在本地生成一个图片 ./simple mountain.mp4 2. cfile/web.c proccess.c process.h 这个是网页版的核心C代码,使用以下命令编译成wasm
使用`pkg-config pkgName --libs --cflags`获取所需包的链接参数,其中`pkgName`需通过`pkg-config --list-all`查询确认。 **实践应用**:在编译命令中嵌入`xxxx-config`或`pkg-config`命令,如: ``` gcc gtktest....
在编译GTK+应用程序时,我们可以使用pkg-config命令来获取所需要的编译信息。譬如: gcc -o simple simple.c `pkg-config --libs --cflags gtk+-2.0` 这个命令将编译一个简单的源文件“simple.c”,并将其与GTK+...
应该适用于所有版本的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例子使用您的...