pkg-config 使用

`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})

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章