使用cmake时发生not providing "*.cmake" in CMAKE_MODULE_PATH类错误的解决办法

今天,我在实验室新配制的新机器上准备用cmake生成一下师兄的项目。
遇到了一些问题:
1.By not providing "FindOpenCV.cmake" in CMAKE_MODULE_PATH

使用cmake时发生not providing "*.cmake" in CMAKE_MODULE_PATH类错误的解决办法
 


这个问题把关键字在网上搜一下就找到了解决办法:
在系统的环境变量中增加一个变量OpenCV_DIR(注意大小写要正确),值为你电脑中安装的opencv的build路径

使用cmake时发生not providing "*.cmake" in CMAKE_MODULE_PATH类错误的解决办法
 

 

使用cmake时发生not providing "*.cmake" in CMAKE_MODULE_PATH类错误的解决办法
 



这个问题出现的原因是cmake不知道你电脑的opencv装在了哪里,它的目的是为了寻找下图中的.cmake文件

使用cmake时发生not providing "*.cmake" in CMAKE_MODULE_PATH类错误的解决办法
 



添加了这个环境变量之后,重启电脑,重新用cmake生成,这个错误果然解决了
然后又出现了新问题
2.By not providing "FindQt5Widgets.cmake" in CMAKE_MODULE_PATH

使用cmake时发生not providing "*.cmake" in CMAKE_MODULE_PATH类错误的解决办法
 


从错误描述中我猜这个问题和上个问题应该是相同的原因,但是我还是上网搜了一下
http://www.cppblog.com/Error/archive/2013/04/13/199407.aspx
http://*.com/questions/15639781/how-to-find-qt5-cmake-module-on-windows
看到了这两个帖子,里面的解决方法是对的。第一个链接里的文章作者开始用直接把*.cmake文件直接拷贝过去还是不能解决问题,然后用了*里面给出的在cmakelist中加入set命令的方法
我的想法是如果仿照第一个问题的解决办法,在系统变量里面也加入一个Qt5Widgets_DIR是否也能解决问题?
然后我在Qt的安装路径下找到了FindQt5Widgets.cmake等文件

使用cmake时发生not providing "*.cmake" in CMAKE_MODULE_PATH类错误的解决办法
 


然后添加了新的环境变量

使用cmake时发生not providing "*.cmake" in CMAKE_MODULE_PATH类错误的解决办法
 


然后重启电脑问题之后 这个错误也不再出现了。

所以我想,这类错误可能都可以用这种方法来解决。只要找到相应的*.cmake文件的路径,然后把路径添加到系统的环境变量中,看就可以解决了。

转载:https://www.douban.com/note/511006818/