怎么写自己的CMakeLists.txt--二
生活随笔
收集整理的這篇文章主要介紹了
怎么写自己的CMakeLists.txt--二
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
之前寫過一篇及其簡單的關于CMakeLists.txt的寫法,現在重點剖析find_package的用法。
如果程序中使用了外部庫,事先并不知道它的頭文件和鏈接庫的位置,就要給出頭文件和鏈接庫的查找方法,并將他們鏈接到程序中。
FIND_PACKAGE(<name> [major.minor] [QUIET] [NO_MODULE] [[REQUIRED|COMPONENTS] [componets...]])1) find_package()的查找路徑
find_package()命令首先會在模塊路徑中尋找 一個事先編譯好的Find.cmake文件,而且一般官方給出了很多,不需要自己編寫這是查找庫的一個典型方式。
具體查找路徑依次為CMake:
模塊模式
- ${CMAKE_MODULE_PATH}中的所有目錄。
- 模塊目錄 /share/cmake-x.y/Modules/ 這稱為。
配置模式
- ~/.cmake/packages/或/usr/local/share/中的各個包目錄中查找,尋找<庫名字的大寫>Config.cmake 或者 <庫名字的小寫>-config.cmake (比如庫Opencv,它會查找/usr/local/share/OpenCV中的OpenCVConfig.cmake或opencv-config.cmake)。
2) .cmake文件定義變量
不管使用哪一種模式,只要找到.cmake,*.cmake里面都會定義下面這些變量:
<NAME>_FOUND
<NAME>_INCLUDE_DIRS or <NAME>_INCLUDES
<NAME>_LIBRARIES or <NAME>_LIBRARIES or <NAME>_LIBS
<NAME>_DEFINITIONS 注意大部分包的這些變量中的包名是全大寫的,如 LIBFOO_FOUND ,有些包則使用包的實際大小寫,如 LibFoo_FOUND
3)添加頭文件與鏈接庫文件
如果找到這個包,則可以通過在工程的頂層目錄中的CMakeLists.txt 文件添加 include_directories(_INCLUDE_DIRS) 來包含庫的頭文件,添加target_link_libraries(源文件 _LIBRARIES)命令將源文件與庫文件鏈接起來。
注:內容轉自https://www.cnblogs.com/narjaja/p/9533199.html
轉載于:https://www.cnblogs.com/chaofn/p/10806907.html
總結
以上是生活随笔為你收集整理的怎么写自己的CMakeLists.txt--二的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 一个mybatis处理batch的插件,
- 下一篇: Q45 跳跃游戏 II