簡體   English   中英

CMake:無法設置變量以使用OpenCV關閉

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM