c++ - 检查包含/库路径变量(如 OpenCV_LIBS)在 unix 中指向的位置

标签 c++ opencv cmake include-path library-path

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

使用 的示例:

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

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

最佳答案

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

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

find_package(OpenCV)

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

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

以下是几个示例(如果 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 提供链接库(例如使用 GNU 编译器)

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

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


引用资料

关于c++ - 检查包含/库路径变量(如 OpenCV_LIBS)在 unix 中指向的位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33981618/

相关文章:

c++ - 查找与运算符重载且私有(private)的对象的地址

python - 导入错误 : No module named cv2

cmake - 如何将外部 CMake 项目安装到 CMAKE_CURRENT_BINARY_DIR

linux - 无法在Linux GUI上打开由cmake构建的Qt程序

c++ - .NET 程序集在运行时初始化

c++ - 如何在 linux 中编译 c++ 程序以生成 windows 可执行文件?

c# - 从 C# 代码调用 dll 函数期间出错

c - 使用 C 接口(interface)的 cvMerge 和 cvShowImage 错误

Android 模拟器相机显示 block

c++ - 在 CMake 中为每个目标设置编译器/链接器标志