find_package原理


Question1 :How find_package() works ?

首先明確一點(diǎn)剿干,cmake本身不提供任何搜索庫的便捷方法铛楣,所有搜索庫并給變量賦值的操作必須由cmake代碼完成却盘,比如下面將要提到的FindXXX.cmake和XXXConfig.cmake栅干。只不過,庫的作者通常會提供這兩個文件甲脏,以方便使用者調(diào)用。

find_package采用兩種模式搜索庫:

Module模式:搜索CMAKE_MODULE_PATH指定路徑下的FindXXX.cmake文件妹笆,執(zhí)行該文件從而找到XXX庫块请。其中,具體查找?guī)觳⒔oXXX_INCLUDE_DIRSXXX_LIBRARIES兩個變量賦值的操作由FindXXX.cmake模塊完成拳缠。

Config模式:搜索XXX_DIR指定路徑下的XXXConfig.cmake文件墩新,執(zhí)行該文件從而找到XXX庫。其中具體查找?guī)觳⒔oXXX_INCLUDE_DIRSXXX_LIBRARIES兩個變量賦值的操作由XXXConfig.cmake模塊完成窟坐。

兩種模式看起來似乎差不多海渊,不過cmake默認(rèn)采取Module模式绵疲,如果Module模式未找到庫,才會采取Config模式臣疑。如果XXX_DIR路徑下找不到XXXConfig.cmake文件盔憨,則會找/usr/local/lib/cmake/XXX/中的XXXConfig.cmake文件⊙渡颍總之郁岩,Config模式是一個備選策略。通常缺狠,庫安裝時會拷貝一份XXXConfig.cmake到系統(tǒng)目錄中问慎,因此在沒有顯式指定搜索路徑時也可以順利找到。

在我遇到的問題中儒老,由于Caffe安裝時沒有安裝到系統(tǒng)目錄蝴乔,因此無法自動找到CaffeConfig.cmake,我在CMakeLists.txt最前面添加了一句話之后就可以了驮樊。

set(Caffe_DIR /home/wjg/projects/caffe/build)#添加CaffeConfig.cmake的搜索路徑find_package(Caffe REQUIRED)if(NOT Caffe_FOUND)message(FATAL_ERROR"Caffe Not Found!")endif(NOT Caffe_FOUND)include_directories(${Caffe_INCLUDE_DIRS})add_executable(useSSD ssd_detect.cpp)target_link_libraries(useSSD${Caffe_LIBRARIES})

Question 2: How to write "Findxxx.cmake" ?

?? We have a lib,which name is "libface_sdk_s.a" in face_sdk/build,and it's header file in include/:

put the file "Findface_sdk.cmake" in cmake/modules/.

root CMakeLists.txt we can add face_sdk information as below:
https://www.ibm.com/developerworks/cn/linux/l-cn-cmake/

www.ibm.com/developerworks/cn/linux/l-cn-cmake/

Question 2: How to write "xxxConfig.cmake" ?

content can be same as Findxxx.cmake

the most different is when we us it in CMakeLists.txt file:

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市片酝,隨后出現(xiàn)的幾起案子囚衔,更是在濱河造成了極大的恐慌,老刑警劉巖雕沿,帶你破解...
    沈念sama閱讀 218,682評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件练湿,死亡現(xiàn)場離奇詭異,居然都是意外死亡审轮,警方通過查閱死者的電腦和手機(jī)肥哎,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,277評論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來疾渣,“玉大人篡诽,你說我怎么就攤上這事×窦瘢” “怎么了杈女?”我有些...
    開封第一講書人閱讀 165,083評論 0 355
  • 文/不壞的土叔 我叫張陵,是天一觀的道長吊圾。 經(jīng)常有香客問我达椰,道長,這世上最難降的妖魔是什么项乒? 我笑而不...
    開封第一講書人閱讀 58,763評論 1 295
  • 正文 為了忘掉前任啰劲,我火速辦了婚禮,結(jié)果婚禮上檀何,老公的妹妹穿的比我還像新娘蝇裤。我一直安慰自己廷支,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,785評論 6 392
  • 文/花漫 我一把揭開白布猖辫。 她就那樣靜靜地躺著酥泞,像睡著了一般。 火紅的嫁衣襯著肌膚如雪啃憎。 梳的紋絲不亂的頭發(fā)上芝囤,一...
    開封第一講書人閱讀 51,624評論 1 305
  • 那天,我揣著相機(jī)與錄音辛萍,去河邊找鬼悯姊。 笑死,一個胖子當(dāng)著我的面吹牛贩毕,可吹牛的內(nèi)容都是我干的悯许。 我是一名探鬼主播,決...
    沈念sama閱讀 40,358評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼辉阶,長吁一口氣:“原來是場噩夢啊……” “哼先壕!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起谆甜,我...
    開封第一講書人閱讀 39,261評論 0 276
  • 序言:老撾萬榮一對情侶失蹤垃僚,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后规辱,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體谆棺,經(jīng)...
    沈念sama閱讀 45,722評論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,900評論 3 336
  • 正文 我和宋清朗相戀三年罕袋,在試婚紗的時候發(fā)現(xiàn)自己被綠了改淑。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,030評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡浴讯,死狀恐怖朵夏,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情兰珍,我是刑警寧澤侍郭,帶...
    沈念sama閱讀 35,737評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站掠河,受9級特大地震影響亮元,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜唠摹,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,360評論 3 330
  • 文/蒙蒙 一爆捞、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧勾拉,春花似錦煮甥、人聲如沸盗温。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,941評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽卖局。三九已至,卻和暖如春双霍,著一層夾襖步出監(jiān)牢的瞬間砚偶,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,057評論 1 270
  • 我被黑心中介騙來泰國打工洒闸, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留染坯,地道東北人。 一個月前我還...
    沈念sama閱讀 48,237評論 3 371
  • 正文 我出身青樓丘逸,卻偏偏與公主長得像单鹿,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子深纲,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,976評論 2 355

推薦閱讀更多精彩內(nèi)容

  • 首先強(qiáng)烈推薦對CMake不熟的同學(xué)先看這本書《Cmake實(shí)踐》(提取碼:qgca)仲锄。 CMake說起來是個好東西,...
    金戈大王閱讀 48,153評論 5 24
  • 摘要:本系列文章主要講解caffe的整個使用流程湃鹊,適合初級入門caffe昼窗,通過學(xué)習(xí)本篇文章,理清項目訓(xùn)練涛舍、測試流程...
    踩坑第某人閱讀 8,387評論 0 4
  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,160評論 25 707
  • 小兒真是難養(yǎng),從八個月開始每月都要生病唆途,也不吃輔食富雅,希望大了就好點(diǎn)吧
    盈語水間閱讀 327評論 1 1
  • 好感動,在外公的眼中肛搬,可以看到他對我的深深疼愛没佑,真幸福~ 我知道,知道經(jīng)歷了温赔,就是成長蛤奢,在舅媽家的日子,雖然有...
    Elegant倩閱讀 143評論 0 0