我有下面的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)
set(USE_OPENCV OFF)
message("OpenCV could not be found. Turning OPENCV OFF.")
endif(OpenCV_FOUND)
endif(USE_OPENCV)因此,我在一个没有OpenCV的配置上运行它,并从CMake那里得到消息:“找不到OPENCV。关闭OPENCV”。但是,在退出屏幕时,我看到CMake USE_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)即使这样也没用..。
发布于 2015-03-04 15:25:29
好的,我们必须缓存这个值。所以,我做了这样的事情:
set(USE_OPENCV OFF CACHE BOOL "ON OFF" FORCE)这似乎是可行的。如果有人有更好的解决方案,请更新线程。
https://stackoverflow.com/questions/28856877
复制相似问题