检查包含/库路径变量(如OpenCV_LIBS)在UNIX中指向何处

Mar*_*ark 7 c++ opencv cmake include-path library-path

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

使用示例:

include_directories( ${OpenCV_INCLUDE_DIRS} )
target_link_libraries( project_name ${OpenCV_LIBS} )
Run Code Online (Sandbox Code Playgroud)

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

Flo*_*ian 8

那些变量被确定(参见OpenCVConfig.cmake用于更详细的描述可用CMake的变量)。

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

find_package(OpenCV)

message(STATUS "OpenCV_INCLUDE_DIRS = ${OpenCV_INCLUDE_DIRS}")
message(STATUS "OpenCV_LIBS = ${OpenCV_LIBS}")
Run Code Online (Sandbox Code Playgroud)

或者,您可以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
    
    Run Code Online (Sandbox Code Playgroud)
  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
    
    Run Code Online (Sandbox Code Playgroud)

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


参考文献