QML/QT exe:无法执行独立应用程序

问题描述 投票:0回答:0

我无法在 visual studio 2019 之外执行 exe(即使使用依赖 dll(QT))。 该应用程序仅在我通过 visual studio 执行它时运行。 我已经检查并添加了所有依赖项(dll),但我收到“QMLApplicationEngine 无法加载组件!”。

我们正在尝试创建一个 QML 应用程序,我将按如下方式传递 Qurl:

QQmlApplicationEngine engine;
    const QUrl url(QStringLiteral("qrc:/main.qml"));
    QObject::connect(&engine, &QQmlApplicationEngine::objectCreated, &app, [url](QObject* obj, const QUrl& objUrl)
        {
            if (!obj && url == objUrl)
            QCoreApplication::exit(-1);
        }, Qt::QueuedConnection);
    engine.load(url);

它正在构建,并且在 Visual Studio 2019 中运行得非常好。但是当我尝试在没有 Visual Studio、使用 QT/QML dll 的其他系统中部署相同的 exe 时,exe 没有运行并抛出以下错误:

Image1

显示 QMLApplicationEngine 加载组件失败的错误信息:

QMLApplicationEngine failed to load component
qrc:/main.qml:14 module "QtQuick.Controls" is not installed
qrc:/main.qml:12 module "QtQuick.Layouts" is not installed
qrc:/main.qml:1 module "QtQuick" is not installed
qrc:/main.qml:17 module "QtQuick.Controls.Styles" is not installed
qrc:/main.qml:6 module "QtQuick.Controls.Styles" is not installed
qrc:/main.qml:4 module "QtQuick.Dialogs" is not installed

Image2

显示插槽空连接的错误信息:

QObject::connect: Cannot connect (null)::mSegCTBone() to QMLManager::QSegCTBone()
QObject::connect: Cannot connect (null)::mSegCTLung() to QMLManager::QSegCTLung()
QObject::connect: Cannot connect (null)::mLength2D() to QMLManager::QLength2D()
QObject::connect: Cannot connect (null)::mAngle2D() to QMLManager::QAngle2D()
QObject::connect: Cannot connect (null)::mCircle2D() to QMLManager::QCircle2D()
QObject::connect: Cannot connect QMLManager::signalToEnableWaitBox() to (null)::mEnableWaitBox()

我试过添加所有 QT/QML dll,但没有成功。

我无法弄清楚我遗漏了什么或我做错了什么为什么 exe 无法运行。 如果有人能帮我解决这个问题,那将非常有帮助。

qt dll qml visual-studio-2019
© www.soinside.com 2019 - 2024. All rights reserved.