【发布时间】:2016-06-25 15:44:10
【问题描述】:
我有一个应用程序,它的项目使用CMake 在Qt5.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
)
Visual Studio 输出中加载的DLL 文件:
'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'
【问题讨论】:
-
C:\Qt\Qt5.7.0\5.7\msvc2015\qml\QtQuick\Controls.2中有哪些文件?看起来它正在尝试查找该插件的调试版本,但是您的 Qt 安装是否可用? -
是的,它的 dll 文件在路径中并在 Visual Studio 中加载(我在智能感知中看到,它的符号已加载)但无法加载应用程序。
-
由于某种原因它会立即卸载插件?我不知道是什么原因造成的。如果你用 Dependency Walker 打开插件会发生什么?这是来自安装程序的预构建 Qt 安装吗?如果是这样,Qt Quick Controls 2 Gallery 示例是否有效?
-
由于 QQmlApplicationEngine 加载组件失败而卸载,所以我将使用 DependencyWalker,因此 Gallery 示例在从 QtCreator 构建和运行时运行良好。
标签: qt qtquick2 qt-quick qtquickcontrols qtquickcontrols2