很多开源代码在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
相关推荐
用法在Cargo.toml中,将以下内容添加到您的[build-dependencies]中:metadeps =“ 1.1”然后,要声明对testlib> = 1.2的依赖关系以及对testdata> = 4.5的条件性依赖关系,请添加以下部分: [package.metadata.pkg-...
windows下使用mingw和mysys编译ffmpeg 添加硬编码时用到的,包含pkg-config需要用到的程序和配置方法
eslint-config-airbnb 这个包提供了 Airbnb 的 .eslintrc 作为可扩展的共享配置。 用法 我们导出三个 ESLint 配置供您使用。 eslint-config-airbnb ... export PKG=eslint-config-airbnb ; npm info " $PKG @lates
借助ffmpeg + wasm实现网页截取视频帧功能 ...使用方法,传递一个视频路径,就会在本地生成一个图片 ./simple mountain.mp4 2. cfile/web.c proccess.c process.h 这个是网页版的核心C代码,使用以下命令编译成wasm
应该适用于所有版本的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例子使用您的...
例如, 使用package.json中的xo名称空间,而使用eslintConfig 。 还有更多工具支持此功能,例如 , , 等。 安装 $ npm install pkg-conf 用法 { " name " : " some-package " , " version " : " 1.0.0 " , " ...
eslint-config-yoctol-base Yoctol信息。 基本ESLint配置,从。 用法 我们导出两个ESLint配置供您使用。 eslint-config-yoctol-base 我们的默认导出包含我们所有的ESLint规则,... export PKG=eslint-config-yoctol-b
安装yarn add --dev @techrdev/stylelint-config用法将Stylelint配置文件添加到您的项目中,并使用我们的配置进行扩展:.stylelintrc { " extends " : " @techrdev/stylelint-config "}开发运行eslint来eslint js...
sudo apt-get install -y build-essential g++ pkg-config python2.7 git pkg-config libncurses5-dev libssl-dev libnss3-dev libexpat-dev 用法 $ npm install --save transportjs 要求者: var Transport = ...
指令有关配置文件,请参阅Wiki: : 用法$光盘仓1.帮助信息$ ./sls -h2.使用默认配置文件运行$ ./sls -c ../sls.conf测试SLS仅支持MPEG-TS格式流。1.用ffmpeg测试您可以通过FFMPEG推送摄像机实时流。请从下载ffmpeg源...
自动生成具有数据类型的列明确指定列类型高级搜索查询坚持种类分组(向下钻取) 片段分页多表协作安装 $ gem install grn_mini当您安装 Rroonga 失败时,请参考 ->基本用法创建一个名为“test.db”的数据库。...
export PKG=eslint-config-urbanladder ; npm info " $PKG @latest " peerDependencies --json | command sed ' s/[\{\},]//g ; s/: /@/g ' | xargs yarn add --dev " $PKG @latest " ) Windows用户将需要手动...
介绍 Annealing 是 GSL 的 C11 语言扩展库,即 GNU 科学库,尝试重新设计模拟退火模块。 该库以 POSIX 系统为目标。上次作者费心更新这一段时,他测试了 GSL 2.5。...更多详情、使用方法,请下载后阅读README.md文件
它会生成并安装正确的pkg-config文件,静态库和动态库以及任何C(和C兼容)软件都将使用的C标头。 用法#构建库,创建.h标头,创建.pc文件$ cargo cbuild --destdir = $ {D} --prefix = / usr --libdir = / usr / ...
freebsd-ansible-config (重新)安装您的FreeBSD笔记本电脑或服务器的规则。 要求 这利用了项目。 您需要使用以下命令进行安装: sudo pkg install -y ansible 用法 笔记本电脑部署 为了运行它,您需要使用...
这是rPPG的一个简单实现,一种不用皮肤接触就能测量心率的方法...$ g++ -std=c++11 Heartbeat.cpp opencv.cpp RPPG.cpp `pkg-config --cflags --libs opencv` -o Heartbeat Settings After building, the app can be ru
libfvad使用autoconf / automake并可以使用通常的方法来构建和安装: ./configure make sudo make install 从克隆的git仓库(而不是下载的发行版)进行构建时,运行autoreconf -i创建丢失的配置脚本(这需要...
该项目使用autoconf , automake , pkg-config和libtool来实现可移植性和易用性。 另外,需要 (> = 1.3.0)。 此项目的最高版本为1.0.8,使用的是libu2f-host和libu2f-server 。 在Ubuntu上,可以使用以下命令...
麦奎用于webview / gtk2webkit和cpp-httplib的包装器类依存关系Debian / Ubuntu sudo apt install libgtk-3-dev libwebkit2gtk-4.0-dev费朵拉sudo dnf install gtk3-devel webkit2gtk3-devel用法使用#include 将Gui...