赞
踩
目录
find_package(xxx REQUIRED)的作用就是寻找包,比如我们某个工程编译的时候需要用到opencv,那我们的CMakeList.txt中需要有find_package(OpenCV REQUIRED),他的原理简单来说就是去寻找OpenCVConfig.cmake文件,然后在OpenCVConfig.cmake文件中会指定opencv的库路径和头文件路径,从而你编译的时候也就找到了相应的头文件和库文件。
如果我们不加干预,那么find_package(OpenCV REQUIRED)会在默认路径中寻找OpenCVConfig.cmake,那么如果我们系统默认路径中的opencv版本不是我们想要的,我们自己在某个路径下cmake编译了更高版本的opencv,然后我们工程编译的时候想让cmake去寻找我们自己编译的更高版本的opencv的OpenCVConfig.cmake,那怎么办呢,这时候就要用set(CMAKE_PREFIX_PATH xxx)。
这个其实就是让cmake去我们指定的目录下寻找xxxxConfig.cmake,如果是opencv,那么我们把编译自己版本opencv时的install文件夹路径放到set(CMAKE_PREFIX_PATH /xxx/xxx/install)即可。这样cmake就会去找到我们自己的 ./install/lib/cmake/opencv4/OpenCVConfig.cmake。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。