【发布时间】:2020-10-01 16:04:54
【问题描述】:
我正在尝试使用带有 opencv 的 openvino 推理引擎的 qt 开发应用程序。
我一直在尝试先使用 qmake 创建项目,但我无法管理,然后我切换到 cmake,这导致了一些改进,但仍然没有成功。
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 cmake windows-10 visual-studio-2019 openvino