【发布时间】:2020-08-06 21:59:39
【问题描述】:
短版
我想将 OpenCV 和 librealsense2 的(未编译的)源文件与 CMake 捆绑在一起,这样我就可以在 RPi 上(或根本没有)交叉编译它,但我是 CMake 的新手,不知道怎么做。
add_executable (CMakeRealSense "CMakeRealSense.cpp" "CMakeRealSense.h")
include_directories(opencv libs/opencv-master/include)
include_directories(realsense2 libs/librealsense-master/include)
这给出了一堆与 RS 文件本身相关的错误(X 未在范围内声明)。
长版
我目前正在尝试为英特尔实感摄像头 d435 编写程序。我正在使用两个库。 OpenCV 和 librealsense2(相机的实际库)。我首先使用 VCPKG 加载包,这适用于我的本地计算机,但我无法在 RPi 3 上正确编译它。我认为将源文件与项目捆绑是个好主意,但我不能让它工作。我收到一个又一个错误。
编辑 1
当我在本地 Windows 机器上编译时,我收到错误 Cannot open include file: 'opencv2/opencv_modules.hpp': No such file or directory。而且,在我的 pi 上,它给出了一堆与 RealSense 文件本身相关的错误(没有全部检查,其中有 780 个)
编辑 3
正如@squareskittles 指出的那样。我修复了与本地 Windows 版本相关的问题,但对于 pi,我仍然遇到新错误的问题。
据我所知,错误状态表明它在文件夹 tools、src 和 examples 中找不到 opengl_config.cmake 文件夹(examples 将被删除,所以没有太多问题)。最后一个错误是
CMake Error at libs/librealsense-master/CMake/install_config.cmake:4 (add_custom_target):
add_custom_target cannot create target "uninstall" because another target
with the same name already exists. The existing target is a custom target
created in source directory
"/home/pi/.vs/CMakeRealSense/d6128cea-ef93-4c7b-83bb-89ee6315963f/src/libs/opencv-master".
See documentation for policy CMP0002 for more details.
编辑 4
所以我首先添加了包含安装配置的 cmake 文件夹,它是如何工作的,第二个错误似乎是 librealsense 和 opencv 在卸载配置中具有相同的名称。可以安全地更改用于卸载的add_custom_target 而不影响其余的 cmake 构建过程吗?
编辑 5
它成功编译了 realsense2 库(据我所知),但它无法打开 opencv2/core.hpp 源文件。不知道为什么找不到。
编辑 6
所以我做了更多的挖掘工作,并且很明显 opencv 使用头文件来检查您使用的模块,problem is it doesnt properly generate one。我不知道该怎么做,但我会做更多的挖掘来找出答案
【问题讨论】:
-
欢迎来到 Stack Overflow!我认为您正在寻找的命令是
add_subdirectory()告诉 CMake 进入每个opencv和realsense2目录,并配置它们。 -
@squareskittles 这为 Windows 编译修复了(非常感谢顺便说一句),但还没有修复 pi 版本,请编辑帖子以反映这一点
-
讨论了与在项目中包含 OpenCV 源代码相关的一些问题(和修复)here。
-
我以前看过那篇文章,但我读到它时感到很困惑。可能是我缺乏这方面的经验。我会试着再看一眼
标签: opencv visual-c++ cmake realsense