CMake:无法将变量设置为禁用OpenCV
我有以下CMake代码段CMake:无法将变量设置为禁用OpenCV,opencv,cmake,Opencv,Cmake,我有以下CMake代码段 #OpenCV option(USE_OPENCV "Use OpenCV data sources" ON) 在这里,我默认打开OpenCV的使用,然后我有: if(USE_OPENCV) find_package( OpenCV REQUIRED ) if(OpenCV_FOUND) include_directories(${OpenCV_INCLUDE_DIRS}) else(OpenCV_FOUND)
#OpenCV
option(USE_OPENCV "Use OpenCV data sources" ON)
在这里,我默认打开OpenCV的使用,然后我有:
if(USE_OPENCV)
find_package( OpenCV REQUIRED )
if(OpenCV_FOUND)
include_directories(${OpenCV_INCLUDE_DIRS})
else(OpenCV_FOUND)
set(USE_OPENCV OFF)
message("OpenCV could not be found. Turning OPENCV OFF.")
endif(OpenCV_FOUND)
endif(USE_OPENCV)
因此,我在没有OpenCV的配置上运行它,我从CMake得到消息:“找不到OpenCV,请关闭OpenCV”。但是,退出屏幕时,我看到CMakeUSE\u OPENCV
变量仍处于启用状态。我正期待着它被点燃
我有什么明显做错了吗
[编辑]
可产生该行为的完整CMakeLists文件为:
project(Test)
cmake_minimum_required(VERSION 2.8)
#OpenCV
option(USE_OPENCV "Use OpenCV data sources" ON)
if(USE_OPENCV)
find_package( OpenCV REQUIRED )
if(OpenCV_FOUND)
include_directories(${OpenCV_INCLUDE_DIRS})
else(OpenCV_FOUND)
set(USE_OPENCV OFF)
message(FATAL_ERROR "OpenCV could not be found. Turning OpenCV OFF.")
endif(OpenCV_FOUND)
endif(USE_OPENCV)
做一些简单无意义的事情,比如:
project(Test2)
cmake_minimum_required(VERSION 2.8)
#OpenCV
option(USE_OPENCV "Use OpenCV data sources" ON)
if(USE_OPENCV)
message("Turn it OFF!")
set(USE_OPENCV OFF)
endif(USE_OPENCV)
即使这样也不行…好的,因此必须缓存该值。所以,我做了一些类似的事情:
set(USE_OPENCV OFF CACHE BOOL "ON OFF" FORCE)
这似乎奏效了。如果有人有更好的解决方案,请更新线程。您是否删除了CMakeCache.txt或更好的完整构建目录?我这样做了,但没有改变任何内容:/然后您必须进行调试,在每个分支中打印消息,并检查其是否符合您的期望。这几乎就是我的CMakeLists文件的要点。我已经编辑了这篇文章以包含完整的文件。你是否试图用一个简单的集合替换
选项
?在windows中使用集合关闭OPENSSL
(CMAKE\u USE\u OPENSSL off CACHE BOOL“ON off”FORCE
谢谢!