OpenCV + Realsense:Visual Studio Link 2019错误

时间:2018-03-17 04:50:03

标签: c++ visual-studio opencv linker realsense

我无法将OpenCV与英特尔Realsense Viewer source code.

集成

注意: 我目前正在使用Windows 10。

我正在使用视觉工作室2017. msvc 14.12

opencv版本是3.4.1(windows pack),它是为您预先构建的版本。

我构建并安装了intel realsense sdk from github。这很成功。我还使用OpenCV examples构建并成功安装了openCV I downloaded

当我尝试将OpenCVrealsense viewer project

相关联时出现问题

我尝试将openCV与Intel Realsense Viewer链接的步骤:

  1. 在visual studio中打开intel realsense sdk解决方案(即名为librealsense2的.sln)

  2. 转到visual studio内“解决方案资源管理器”面板中的realsense-vewier项目

  3. 右键点击项目'realsense-viewer',然后选择属性

  4. 确保上面的2个下拉框中包含“x64”和“所有配置”

  5. 转到C / C ++ - >常规选项(从左侧白框中)然后转到“其他包含目录”

  6. 在目录中添加%OpenCVDownloadRoot%/ build / include和%OpenCVDownloadRoot%/ build / include / opencv(这是示例OpenCV项目的配置

  7. 现在,openCV中的一些函数没有在'realsense-viewer'项目中正确链接(这很奇怪,因为SDK中的OpenCV项目中的工作,即使属性是相同的。错误如下: enter image description here

    然后我按照一些额外的步骤来看看我是否可以让它发挥作用。

    1. 在属性对话框(我们刚刚进入)中,而不是选择C / C ++,选择'链接器'

    2. 在“其他库目录”选项中,添加%OpenCVDownloadRoot%/ build / x64 / vc15 / lib

    3. 在“链接器”属性中,搜索输入(链接器 - >输入)

    4. 在“附加依赖项”选项中添加“opencv_world341d.lib”。

    5. 现在我们得到一个完全不同的错误: enter image description here

      现在没有识别现实库。除上述情况外,未修改其他任何属性。我可以确认步骤10会导致所有这些错误。即使我在执行所有步骤后反转步骤10的操作,上述错误仍然存​​在 - >这必须是一个视觉工作室的错误。

      有关如何在Visual Studio 2017中使用OpenCV 3.4.1 + realsense-viewer(来自SDK)的任何帮助或提示?

      编辑:我已经读过: What is an undefined reference/unresolved external symbol error and how do I fix it?

      但是我已经正确地链接了glfw和所有其他需要链接的东西,以便错误消息消失。我相信这个问题可能是英特尔的错误,或者是一个需要解决方法的错误

1 个答案:

答案 0 :(得分:1)

在公园散步后找到解决方案(假设您使用的是Windows 10,2017年的Visual Studio项目):

进入您当地的librealsense项目文件夹

转到C:\Users\yourName\to\your\local\realsense\folder\librealsense\tools\CMakeLists.txt

将其添加到文件末尾:

  

find_package(OpenCV REQUIRED)

     

列表(APPEND DEPENDENCIES realsense2 $ {OpenCV_LIBS})

这样整个文件都是这样的:

  

最低要求的cmake版本:3.1.0 cmake_minimum_required(VERSION 3.1.0)

     

项目(RealsenseTools)

     

在构建输出集中保存命令行编译命令(CMAKE_EXPORT_COMPILE_COMMANDS 1)

     

在构建期间查看makefile命令

     

设置(CMAKE_VERBOSE_MAKEFILE开启)

     

此参数用于在构建

时禁用图形示例      

保存到磁盘的目标。选项(BUILD_GRAPHICAL_EXAMPLES“构建图形示例。”ON)

     

include(CheckCXXCompilerFlag)CHECK_CXX_COMPILER_FLAG(“ - std = c ++ 11”   COMPILER_SUPPORTS_CXX11)CHECK_CXX_COMPILER_FLAG(“ - std = c ++ 0x”   COMPILER_SUPPORTS_CXX0X)if(COMPILER_SUPPORTS_CXX11)       set(CMAKE_CXX_FLAGS“$ {CMAKE_CXX_FLAGS} -std = c ++ 11”)elseif(COMPILER_SUPPORTS_CXX0X)       set(CMAKE_CXX_FLAGS“$ {CMAKE_CXX_FLAGS} -std = c ++ 0x”)endif()

     

如果(BUILD_GRAPHICAL_EXAMPLES)       find_package(OpenGL的)       if(NOT OPENGL_FOUND)           消息(FATAL_ERROR“\ n \ n缺少OpenGL包!\ n \ n”)       ENDIF()

set(DEPENDENCIES realsense2 ${OPENGL_LIBRARIES})

if(WIN32)
    list(APPEND DEPENDENCIES glfw3)
else()
    # Find glfw header
    find_path(GLFW_INCLUDE_DIR NAMES GLFW/glfw3.h
        PATHS /usr/X11R6/include
              /usr/include/X11
              /opt/graphics/OpenGL/include
              /opt/graphics/OpenGL/contrib/libglfw
              /usr/local/include
              /usr/include/GL
              /usr/include
    )
    # Find glfw library
    find_library(GLFW_LIBRARIES NAMES glfw glfw3
            PATHS /usr/lib64
                  /usr/lib
                  /usr/lib/${CMAKE_LIBRARY_ARCHITECTURE}
                  /usr/local/lib64
                  /usr/local/lib
                  /usr/local/lib/${CMAKE_LIBRARY_ARCHITECTURE}
                  /usr/X11R6/lib
    )
    if(APPLE)
        find_library(COCOA_LIBRARY Cocoa)
        find_library(IOKIT_LIBRARY IOKit)
        find_library(COREVIDEO_LIBRARY CoreVideo)
        LIST(APPEND DEPENDENCIES ${COCOA_LIBRARY} ${IOKIT_LIBRARY} ${COREVIDEO_LIBRARY})
    endif()
    list(APPEND DEPENDENCIES m ${GLFW_LIBRARIES} ${LIBUSB1_LIBRARIES})
    include_directories(${GLFW_INCLUDE_DIR})
endif() else()
set(DEPENDENCIES realsense2)
if(NOT WIN32)
    list(APPEND DEPENDENCIES m ${LIBUSB1_LIBRARIES})
endif() endif()
     

允许此项目访问opencv find_package(OpenCV REQUIRED)

     

find_package(OpenCV REQUIRED)   set(DEPENDENCIES realsense2 $ {OpenCV_LIBS})

     

add_subdirectory(terminal)add_subdirectory(fw-logger)   add_subdirectory(enumerate-devices)add_subdirectory(realsense-viewer)   add_subdirectory(data-collect)add_subdirectory(深度质量)   add_subdirectory(rosbag-检查员)

然后使用cmake gui重建项目