`pkg-config --libs grpc++ grpc`
https://www.cnblogs.com/rainsoul/p/10567390.html
https://blog.csdn.net/makesifriend/article/details/84797995
2 爲什麼要有pkg-config
從上面的例子,可以看出,pkg-config給出了opencv的頭文件和庫的所有信息!
這有什麼好處?
所有用opencv的其他程序,在編譯時,只需要寫“pkg-config opencv –libs –cflags”,而不需要自己去找opencv的頭文件在哪裏,要鏈接的庫在哪裏!省時省力!
如果你寫了一個庫,不管是靜態的還是動態的,要提供給第三方使用,那除了給人家庫/頭文件,最好也寫一個pc文件,這樣別人使用就方便很多,不用自己再手動寫依賴了你哪些庫,只需要敲一個”pkg-config [YOUR_LIB] –libs –cflags”。
3 pkg-config的信息從哪裏來?
很簡單,有2種路徑:
第一種:取系統的/usr/lib下的所有*.pc文件。
第二種:PKG_CONFIG_PATH環境變量所指向的路徑下的所有*.pc文件。
這些pc文件什麼時候有的?都是在你安裝某個庫/模塊的時候,添加的。比如你往系統安裝opencv時,就會在/usr/lib/目錄下,放一個opencv.pc。
比如,我的PC是這樣的。你可以看到,有各種各樣的pc文件。
cmake中PkgConfig
https://zhuanlan.zhihu.com/p/64424440
https://blog.csdn.net/qq_32768743/article/details/102521141
https://cmake.org/cmake/help/v3.0/module/FindPkgConfig.html
https://www.jianshu.com/p/129037a4afd8
cmake_minimum_required(VERSION 3.15)
project(demo)
set(CMAKE_CXX_STANDARD 17)
find_package(PkgConfig REQUIRED)
pkg_search_module(CCRTP REQUIRED libccrtp)
add_executable(demo main.cpp)
target_link_libraries(demo ${CCRTP_LIBRARIES})
#`pkg-config --libs grpc++ grpc`
#set(ENV{PKG_CONFIG_PATH} /usr/local/lib/pkgconfig)
#find_package(PkgConfig REQUIRED)
#pkg_search_module(GRPC REQUIRED grpc
#GRPC++ REQUIRED grpc++)
#pkg_search_module(GRPC++ REQUIRED grpc++)
#pkg_search_module(CCRTP REQUIRED libccrtp)
#target_link_libraries(demo ${CCRTP_LIBRARIES})