一. 背景需求
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