1 引言
很多大型第三方框架使用Pkg-Config维护它依赖库路径、头文件路径、编译选项、链接选项等信息,文件名后缀是.pc
,方便第三方开发者便捷地获取相关信息,例如OpenCV和Seastar,通常都是大型且复杂的第三方库
2 基本使用
可以通过Linux的PkgConfig
命令获取相关信息,如
pkg-config --libs --cflags seastar
3 CMake中如何调用
CMake通过FindPkgConfig
模块来使用获取相关信息,比较经典的写法是:
set(ENV{PKG_CONFIG_PATH} /seastar/build/release)
find_package(PkgConfig)
pkg_search_module(SEASTARPC REQUIRED seastar)
后面就可以通过SEASTARPC_LIBRARIES
等方式获取相关编译选项和库名称等。
MESSAGE(STATUS ${SEASTARPC_LIBRARIES})
MESSAGE(STATUS ${SEASTARPC_INCLUDE_DIRS})
具体有哪些可以使用,可以参看CMake的FindPkgConfig模块使用.
4 总结
一些细节问题可以百度一下,以上方法足够日常开发使用。
5 附录-seastar.pc
seastar.pc位于/seastar/build/release/seastar.pc,文件内容如下:
Name: Seastar
URL: http://seastar-project.org/
Description: Advanced C++ framework for high-performance server applications on modern hardware.
Version: 1.0
Libs:
Cflags:
网友评论