[英]CMake: Cannot set a variable to use OpenCV off
我有以下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
變量仍處於打開狀態。 我期望將其設置為OFF。
我在做某件事明顯錯嗎?
[編輯]可以產生此行為的完整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)
這似乎可行。 如果有人有更好的解決方案,請更新線程。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.