Cmake工程編譯

參考 https://www.cnblogs.com/LiuSY/p/5808210.html
工程GMS-Feature-Matcher-master
需要opencv
1、直接編譯,報錯,如下圖
在這裏插入圖片描述

在這裏插入圖片描述
2、根據提示上圖報錯,找不到OpenCVConfig.cmake文件,且錯誤說set OpenCV_DIR,如下圖設置了OpenCV_DIR,這下面
在這裏插入圖片描述
在這裏插入圖片描述
/***題外補充/
需要找變量${OpenCV_INCLUDE_DIRS} ${OpenCV_LIBS}
兩個工程之間是通過cmake通信的,GMS-Feature-Matcher-master需要opencv的頭文件和庫文件,因此在opencv的build好的下找OpenCVConfig.cmake
在這裏插入圖片描述
如上圖,opencv的OpenCVConfig.cmake裏定義了GMS-Feature-Matcher-master中Cmakelist中的變量OpenCV_INCLUDE_DIRS, OpenCV_LIBS
GMS-Feature-Matcher-master添加路徑設置,如下圖,這樣子兩個工程之間由cmake連接
在這裏插入圖片描述
/*********題外補充完結/

3、2中修改完,再cmake-gui重新編譯,出錯如下:
在這裏插入圖片描述
因爲當時編譯opencv時, opencv_hdf文件沒有build成功。爲了解決這個問題,註釋掉install/下所有cmakeconfige的hdf,注意是所有!
註釋文件
在這裏插入圖片描述
在這裏插入圖片描述
4、3修改完後,重新編譯,報錯:
在這裏插入圖片描述
因此再註釋掉相應文件中的opencv_hdf,具體如下:
在這裏插入圖片描述
在這裏插入圖片描述

5、4完後,報錯如下,當時爲了備份,copy了副本
在這裏插入圖片描述
6、刪掉這些副本,再次編譯
在這裏插入圖片描述
成功了,但還有紅色,再次confige,如下圖:
在這裏插入圖片描述

成功,如下圖:
在這裏插入圖片描述

然後,generator,如下圖:
在這裏插入圖片描述
成功了,如下圖:
在這裏插入圖片描述

7、生成成功後,查看如下路徑:
在這裏插入圖片描述
打開.sln,右擊ALL_BUILD-生成,如下圖
在這裏插入圖片描述

生成完畢,如下圖
在這裏插入圖片描述

7,運行exe
在這裏插入圖片描述
運行exe後報錯,如下,可能是數據加載路徑,exe會根據相對路徑加載,.cpp爲…/data/“0.jpg”,因此將data文件夾拷貝到與exe滿足相對路徑的位置
在這裏插入圖片描述

拷貝data後,如下:
![在這裏插入圖片描述](https://img-blog.csdnimg.cn/20190409235827430.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzI5MjMwMzQ5,size_16,color_FFFFFF,t_70
在這裏插入圖片描述
8、7修改完後,再次運行exe後報錯,缺少…dll,從opencv build好的路徑下拷貝相應dll到GMS 的debug下,當時爲了方便全拷貝了。注意:運行exe時,程序會從環境變量裏的opencv…/bin,sys32,還有exe所在同級目錄下找需要的opencv的dll,
在這裏插入圖片描述
GMS 的debug
在這裏插入圖片描述

9、再次運行exe,終於成功了
在這裏插入圖片描述

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