11

在将 OpenCV 等库与 C/C++ 一起使用时,OpenCV_LIBS 等变量用于将编译器/链接器指向相关目录。

的示例:

include_directories( ${OpenCV_INCLUDE_DIRS} )
target_link_libraries( project_name ${OpenCV_LIBS} )

如何检查这些变量指向的位置?我试过在终端中输入set或输入printenv,但它只显示一些系统变量。另外我如何设置/更改这些变量?

4

1 回答 1

13

这些变量由确定(有关可用的 CMake 变量OpenCVConfig.cmake的更详细描述,请参阅 )。

要查看这些值,您可以在调用项目message()之后添加调用:find_package(OpenCV)CMakeLists.txt

find_package(OpenCV)

message(STATUS "OpenCV_INCLUDE_DIRS = ${OpenCV_INCLUDE_DIRS}")
message(STATUS "OpenCV_LIBS = ${OpenCV_LIBS}")

或者,您可以find_package通过 CMake 命令行选项运行。

以下是一些示例(CMAKE_PREFIX_PATH如果 CMake 无法自动找到您的库安装路径,则该部分是可选的):

  1. MODE=COMPILE提供包含目录(例如使用MSVC编译器)

    $ cmake 
        --find-package 
        -DNAME=OpenCV 
        -DCOMPILER_ID=MSVC -DMSVC_VERSION=1700 
        -DLANGUAGE=CXX 
        -DMODE=COMPILE 
        -DCMAKE_PREFIX_PATH:PATH=/path/to/your/OpenCV/build
    
  2. MODE=LINK提供链接库(例如使用GNU编译器)

    $ cmake 
        --find-package 
        -DNAME=OpenCV 
        -DCOMPILER_ID=GNU 
        -DLANGUAGE=CXX 
        -DMODE=LINK 
        -DCMAKE_PREFIX_PATH:PATH=/path/to/your/OpenCV/build
    

注意:此 CMake 调用将CMakeFiles在您当前的工作目录中创建一个子目录。


参考

于 2017-03-07T20:49:08.023 回答