检查 include/library 路径变量如 OpenCV_LIBS 在 unix 中指向的位置

Check where include/library path variables like OpenCV_LIBS point to in unix

在 C/C++ 中使用 OpenCV 等库时,OpenCV_LIBS 等变量用于将 compiler/linker 指向相关目录。

使用 的示例:

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

如何检查这些变量指向的位置?我试过在终端中输入 setprintenv 但它只显示一些系统变量。还有我怎么能set/change这样的变量呢?

这些变量由 (see OpenCVConfig.cmake for a more detailed description of 可用的 CMake 变量决定)。

要查看这些值,您可以在对项目的 CMakeLists.txt:

find_package(OpenCV) 调用之后添加 message() 调用
find_package(OpenCV)

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

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

这里有几个示例(如果 CMake 无法自动找到您的库安装路径,CMAKE_PREFIX_PATH 部分是可选的):

  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 提供 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 子目录。


参考资料