Mar*_*ark 7 c++ opencv cmake include-path library-path
在将OpenCV之类的库与C / C ++一起使用时,使用诸如OpenCV_LIBS之类的变量将编译器/链接器指向相关目录。
使用cmake的示例:
include_directories( ${OpenCV_INCLUDE_DIRS} )
target_link_libraries( project_name ${OpenCV_LIBS} )
Run Code Online (Sandbox Code Playgroud)
如何检查此类变量指向的位置?我尝试在终端输入set或输入printenv,但它仅显示一些系统变量。另外,如何设置/更改此类变量?
那些变量被确定cmake的(参见OpenCVConfig.cmake用于更详细的描述的OpenCV可用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的是不能够自动找到你的库的安装路径):
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)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在当前工作目录中创建一个子目录。
参考文献