1

我在 Windows7 上用 c++ qnd Qt Creator(QML) 编写了一个 Qt Quick Desktop 应用程序。现在我必须部署它。

我在我的应用程序中使用 Qt Quick Desktop Components 插件,我已经根据这些说明安装了它,并且我正在使用它:“import Qt.labs.components”,如那里所写。

我尝试添加到 .pro 文件:

QML_IMPORT_PATH = C:\QtSDK\Desktop\Qt\4.7.4\mingw\imports\Qt\labs\components

但我看到它没有它也能很好地工作,我把它删除了。

我已经阅读了如何在此处部署此类应用程序的指南,并遵循了它;我现在有一个部署文件夹,其中包含:.exe 文件、所需的 dll 和一个文件夹层次结构,如:Qt/labs/components。

在组件中,我放置了 styleplugin.dll(用于桌面组件)和一个 qmldir 文件,其内容为:plugin styleplugin,与文档中的完全一样。

但是当我从另一台计算机的部署文件夹中运行我的 application.exe 时,我得到一个白色的空窗口,这意味着:它没有找到 .dll 文件。

你应该解释一下有什么问题吗?

4

1 回答 1

2

我知道两个原因,当应用程序无法加载插件 dll 时:

  1. 插件dll的一些依赖项丢失或找不到,这就是它无法加载的原因。Qt Creator 或 Visual Studio 环境可能与系统环境不同。例如,您的 IDE 可以修改 PATH 环境变量。在启动应用程序的同一环境中使用 Microsoft Dependency Walker 工具检查插件的依赖项可用性。
  2. 应用程序在标准目录中找不到插件。要检查这一点,您应该明确指定插件导入目录:

    QDeclarativeView *rootView = new QDeclarativeView()
    rootView->engine()->addImportPath(QLatin1String("path/to/your/imports"));
    
于 2012-11-28T05:50:26.560 回答