日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

怎么写自己的CMakeLists.txt--二

發布時間:2025/3/20 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 怎么写自己的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--二的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。