导入QtQuick.Controls 2.0不起作用 - QQmlApplicationEngine无法加载组件

Rez*_*imi 3 qt qt-quick qtquick2 qtquickcontrols qtquickcontrols2

我有利用其产生的项目中应用CMakeQt5.7,所以当import QtQuick.Controls 2.0应用程序失败,出现以下错误加载:

插件无法加载模块 "QtQuick.Controls":无法加载库C:\ Qt的\ Qt5.7.0\5.7\msvc2015\QML\QtQuick\Controls.2\qtquickcontrols2plugind.dll:指定的模块找不到.

的CMakeLists.txt

set(CMAKE_PREFIX_PATH "C:\\Qt\\Qt5.7.0\\5.7\\msvc2015")
set(CMAKE_AUTOMOC ON) 
set(CMAKE_AUTORCC ON) 
set(CMAKE_AUTOUIC ON)
set(CMAKE_INCLUDE_CURRENT_DIR ON)

find_package(Qt5Core REQUIRED)
find_package(Qt5Qml) 
find_package(Qt5Quick) 
find_package(Qt5QuickControls2)

...

add_executable(MyApp ${SRC} ${HEADER} ${RESOURCES})

target_link_libraries(MyApp
Qt5::WinMain    
Qt5::Core   
Qt5::Qml    
Qt5::Quick  
Qt5::QuickControls2     
)
Run Code Online (Sandbox Code Playgroud)

DLL在visual studio输出中加载的文件:

'MyApp.exe' (Win32): Loaded 'C:\Qt\Qt5.7.0\5.7\msvc2015\qml\QtQuick.2\qtquick2plugind.dll'. Symbols loaded.
'MyApp.exe' (Win32): Loaded 'C:\Qt\Qt5.7.0\5.7\msvc2015\qml\QtQuick\Controls.2\qtquickcontrols2plugind.dll'. Symbols loaded.
'MyApp.exe' (Win32): Unloaded 'C:\Qt\Qt5.7.0\5.7\msvc2015\qml\QtQuick\Controls.2\qtquickcontrols2plugind.dll'
Run Code Online (Sandbox Code Playgroud)

Rez*_*imi 6

我找到了解决方案,问题QtQuick.Controls 2.0取决于QtQuick.Templates 2.0模块,所以我已将其dll复制到输出目录并成功运行.

必需的DLL(用于Debug版本):

Qt5QuickTemplates2d.dll
Qt5QuickControls2d.dll
Run Code Online (Sandbox Code Playgroud)

必需的DLL(适用于发行版):

Qt5QuickTemplates2.dll
Qt5QuickControls2.dll
Run Code Online (Sandbox Code Playgroud)