在 C/C++ 中使用 OpenCV 等库时,OpenCV_LIBS 等变量用于将编译器/链接器指向相关目录。
使用 cmake 的示例:
include_directories( ${OpenCV_INCLUDE_DIRS} )
target_link_libraries( project_name ${OpenCV_LIBS} )
如何检查这些变量指向的位置?我试过在终端中输入 set
或 printenv
但它只显示一些系统变量。另外,如何设置/更改此类变量?
最佳答案
这些变量由 cmake 决定(有关 OpenCVConfig.cmake
可用 CMake 变量的更详细说明,请参阅 opencv)。
要查看这些值,您可以在对项目的 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
部分是可选的):
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
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/