[英]Qt5 Openvino opencv cmake windows
我正在尝试使用带有 opencv 的 openvino 推理引擎的 qt 开发应用程序。
我一直在尝试先用 qmake 创建项目,但我无法管理,然后我切换到 cmake an,这导致了一些改进,但仍然没有成功。
openvino: openvino_2020.04.287
opencv:openvino 中包含的那个
cmake:3.14.7
qt: qt 5_15_0\\
正如我读过的那样,openvino 与 mscvc 一起工作,所以这就是我正在使用的而不是 mingw。
我的 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} )
当它给我以下错误时:
PortraitSegmentationWin/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。
我在这里真的一无所知,我将不胜感激任何形式的帮助!
提前致谢
首先,您应该阅读这些内容以获取有关工作原理的更多信息:
接下来,最大的问题是,您在哪个操作系统中运行 QT。如果您使用的是 Windows,则需要具备以下所有先决条件: https : //docs.openvinotoolkit.org/latest/openvino_docs_install_guides_installing_openvino_windows.html
同样的事情适用于其他人(注意:您可以在左上角搜索其他操作系统并确保右上角的下拉菜单中的版本正确)
确保每次打开新终端时都运行 setupvars。
如果您像在 Linux 中一样永久设置 setupvars,那么您不必每次打开新终端时都启动它。 但是,大多数情况下,在 Windows 中,您需要这样做,因为在我上面提供的指南中没有指定永久启动 setupvars。
为 inference_engined.dll 加载的错误 No symbol 必须与可能由 MSbuild 引起的 LINK2019 和 LINK2001 错误有关。 我建议您使用 MSBuild 卸载所有版本的 Microsoft Visual Studio,并尝试使用 MSBuild 重新安装 2019 版。 这解决了我以前的问题。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.