Qt5 Openvino opencv cmake windows



我正在尝试使用qt开发一个应用程序,该应用程序使用opencv的openvino推理引擎
我一直试图先用qmake创建项目,但我没能成功,然后我改用cmake,这带来了一些改进,但仍然没有成功
openvino:openvino_2020.04.287
opencv:openvino
cmake:3.14.7
qt:qt 5_15_0\中包含的一个

正如我所读到的,openvino与mscvc一起工作,所以这就是我所使用的,而不是mingw
My CMakeLists.txt如下所示:

cmake_minimum_required(VERSION 3.14.7 FATAL_ERROR)
project(PortraitSegmentationWin LANGUAGES CXX)
set(CMAKE_INCLUDE_CURRENT_DIR ON)
find_package(QT5 REQUIRED COMPONENTS Core Widgets Gui)
find_package(InferenceEngine REQUIRED)
find_package(OpenCV REQUIRED)

set(project_ui
mainwindow.ui)
set(project_headers
mainwindow.h)
set(project_sources
main.cpp
mainwindow.cpp)
qt5_wrap_ui(project_headers_wrapped ${project_ui})
qt5_wrap_cpp(project_sources_moc ${project_headers})
add_executable(${PROJECT_NAME} ${project_headers} 
${project_sources} ${project_headers_wrapped} 
${project_sources_moc})
target_link_libraries(${PROJECT_NAME}
PUBLIC
${QT5Widgets_LIBRARIES}
${Qt5Core_LIBRARIES}
${QT5Gui_LIBRARIES}
${InferenceEngine_LIBRARIES} 
${OpenCV_LIBS} )


当它给我以下错误时:
PortraitSessionWin/CMakeLists.txt:22(qt5_wrap_ui(的CMake错误:未知CMake命令";qt5_wrap_ui">\

如果我使用find_package(Qt5Widgets(,然后我可以继续生成选项,我甚至可以打开项目,但当我构建它时,它失败了,并给我LINK2019和LINK2001错误144,其中之一。。。

我的CMakeLists.txt的另一个版本是:

cmake_minimum_required(VERSION "3.14.7")
project(PortraitSegmentation_openVINO_OpenCV LANGUAGES CXX)
set(CMAKE_INCLUDE_CURRENT_DIR ON)
set(CMAKE_AUTOUIC ON)
set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTORCC ON)
set(CMAKE_CXX_STANDARD 11)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
# QtCreator supports the following variables for Android, which are identical to qmake Android variables.
# Check http://doc.qt.io/qt-5/deployment-android.html for more information.
# They need to be set before the find_package(Qt5 ...) call.
#if(ANDROID)
#    set(ANDROID_PACKAGE_SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/android")
#    if (ANDROID_ABI STREQUAL "armeabi-v7a")
#        set(ANDROID_EXTRA_LIBS
#            ${CMAKE_CURRENT_SOURCE_DIR}/path/to/libcrypto.so
#            ${CMAKE_CURRENT_SOURCE_DIR}/path/to/libssl.so)
#    endif()
#endif()
find_package(QT NAMES Qt6 Qt5 COMPONENTS Widgets REQUIRED)
find_package(Qt${QT_VERSION_MAJOR} COMPONENTS Widgets REQUIRED)
find_package(InferenceEngine REQUIRED)
find_package(ngraph REQUIRED)
find_package(OpenCV REQUIRED)
set(PortraitSegmentation_openVINO_OpenCV
main.cpp
mainwindow.cpp
mainwindow.h
mainwindow.ui
)
add_executable(PortraitSegmentation_openVINO_OpenCV
main.cpp
mainwindow.cpp
mainwindow.h
mainwindow.ui
)

target_link_libraries(PortraitSegmentation_openVINO_OpenCV PRIVATE Qt${QT_VERSION_MAJOR}::Widgets Qt5::Core Qt5::Gui  ${InferenceEngine_LIBRARIES} ${OpenCV_LIBRARIES} ${NGRAPH_LIBRARIES})

另一方面,这告诉我没有检测到qt-plugin
我在这里真的很无知,我很感激任何形式的帮助!

提前感谢

首先,您应该阅读这些内容以获得更多关于的信息

  1. 如何在Qt 中部署openvino-opencv

  2. https://community.intel.com/t5/Intel-Distribution-of-OpenVINO/SOLVED-Develop-OpenVINO-with-QT/td-p/1147234

接下来,最大的问题是,您在哪个操作系统中运行QT。如果您使用的是Windows,您需要具备所有必备组件,如下所示:https://docs.openvinotoolkit.org/latest/openvino_docs_install_guides_installing_openvino_windows.html

同样的事情也适用于其他人(注意:您可以在左上角搜索其他操作系统,并确保右上角下拉菜单上的版本正确(

确保每次打开新终端时都运行setupvar。

如果像在Linux中那样永久地设置setupvars,则不必每次打开新终端时都启动它。然而,在Windows中的大多数时候,您需要这样做,因为我在上面提供的指南中没有指定永久启动setupvars。

为推理_engined.dll加载的错误No symbol必须与可能由MSbuild引起的LINK2019和LINK2001错误有关。我建议您卸载所有版本的Microsoft Visual Studio及其MSBuild,并尝试使用MSBuild重新安装2019版本。这解决了我以前的问题。

最新更新