一. 背景需求
pkg-config 默认搜索路径在 /usr/lib64/pkgconfig , 有时我们需要的包,不在该位置,需要自定义搜索路径
二. CMakeLists.txt配置示例
#项目名字
project(hello)
#自定义pkgconfig目录的路径,截止到目录层,不是文件
set(ENV{PKG_CONFIG_PATH} "/opt/code/path/to/pkgconfig")
#验证自定义变量路径
message("PKG_CONFIG_PATH: $ENV{PKG_CONFIG_PATH}")
#cmd test: pkg-config --static --libs mylib
#加载PkgConfig的支撑模块
find_package(PkgConfig REQUIRED)
#pkg-config引入mylib依赖
pkg_check_modules(mylib REQUIRED IMPORTED_TARGET mylib)
#项目生成静态库 hello.a
add_library(hello STATIC x.cpp x.h)
#传递性的依赖
target_link_libraries(hello PUBLIC cjson)
#静态导入的依赖,不传递
target_link_libraries(hello PRIVATE PkgConfig::mylib )
三. 编译
cmake . ; make