0

我正在尝试使用 windeployqt --qmldir 方法部署应用程序。当从包含可执行文件的文件夹中运行命令时,所有依赖项都会被复制,一切看起来都很顺利。除了,当我单击应用程序文件在没有安装 Qt 的系统上运行它时,它根本不会启动。我得到忙碌的鼠标指针几秒钟,然后什么也没有。没有错误或任何东西。它在安装了 Qt 的机器上确实可以正常启动,但在另一台机器上却不行。我尝试使用相同的方法部署我的其他一些项目,它们都运行良好。然后我想到它可能是我正在使用的多个 qmldir “模块”。所以我拿了一个以前部署得很好的项目,向它添加了一个 qmldir 模块并再次部署它,aaaand 什么都没有。相同的 ”

-Top_Level_Project_Dir
     -GUI_Construction
          -fonts
          -images
          -javascript
          -qml
               -Construction_QML
                    -QML_Elements_Directory_1
                         - a bunch of qml files, some in their own folders
                         - qmldir
                    -QML_Elements_Directory_2
                         - a bunch of qml files, some in their own folders
                         - qmldir
                    -Singletons
                         - Globals
                              - qmldir
                         - Menus
                              - qmldir
          -qml.qrc
    - GUI Tests

我尝试过的 windeployqt 命令是:

windeployqt --qmldir C:\QtProjects\Top_Level_Project_Dir\GUI_Construction\qml <location of exe>

那是行不通的。也试过:

windeployqt --qmldir C:\QT\5.15.1\msvc2019_64\qml <location of exe>

这使得部署目录变得非常大,因为它复制了所有内容,但仍然无法正常工作。然后我尝试在 --qmlimport 选项之后插入导入路径(在 main.cpp 文件中使用 engine.addImportPath() 指定):

windeployqt --qmldir C:\QtProjects\Top_Level_Project_Dir\GUI_Construction\qml --qmlimport C:\QtProjects\Top_Level_Project_Dir\GUI_Construction\qml\Construction_QML (same for each qmldir) <location of exe>

这也没有奏效。它只是将我所有的 qml 文件复制到了部署目录,这是我无论如何都想避免的。

4

0 回答 0