【问题标题】:deploying Qt/QML App with LocalStorage (Sqlite) on OS X在 OS X 上使用 LocalStorage (Sqlite) 部署 Qt/QML 应用程序
【发布时间】:2014-05-02 23:39:09
【问题描述】:

我正在使用 QML 做一个应用程序,它使用 LocalStorage 来存储一些信息。 当我在调试模式下运行时,它工作正常。

我访问数据库的storage.js就是这样的。

.import QtQuick.LocalStorage 2.0 as Sql

// First, let's create a short helper function to get the database connection
function getDatabase() {
     return Sql.LocalStorage.openDatabaseSync("MyApp", "0.1", "StorageDatabase", 100000);
}

我的 Qt .pro 文件包含 Sql 模块:

QT += sql

而且一开始它在发布模式下也能正常运行。

但是当我尝试在 OSX 上部署时,像这样运行macdeployqt

macdeployqt MyApp.app -dmg -qmldir=../MyApp/qml/

首先我遇到了一个错误,但我认为这没关系,因为我不使用 MySQL: ERROR: no file at

"/opt/local/lib/mysql55/lib/libmysqlclient.18.dylib"

我正在通过 LocalStorage 使用 sqlite。

然后尝试在发布模式下运行它不再起作用,数据库访问不起作用,甚至在部署中它也不起作用......现在当我尝试运行应用程序时出现错误:

storage.js:5: ReferenceError: Sql is not defined

line 5 是这个:

return Sql.LocalStorage.openDatabaseSync("MyApp", "0.1", "StorageDatabase", 100000);

并且第一行定义了Sql名称:

.import QtQuick.LocalStorage 2.0 as Sql

在互联网上寻找这个错误时,我发现一些地方告诉我完全按照我的做法去做,比如这里:https://qt-project.org/forums/viewthread/28371

有什么线索吗?

我正在使用 Qt5.2、Quick 2.0、Qt Creator 3.01

【问题讨论】:

  • 我可能会说些琐碎的话,但是您能检查一下.import 方法是否正常工作并且Sqlobject 是否正确启动?为此添加一些代码并进行部署。您是否将 MySQL 作为开发工具包的一部分?
  • 嗯,看起来是这样,它在调试模式下工作正常,这应该表明导入很好,对吧?我没有 MySQL,我使用 Sqlite 作为数据库。

标签: qt sqlite qml


【解决方案1】:

问题与自 Qt5.1 以来出现的这个 Qt 错误有关 https://qt-project.org/forums/viewthread/29805/

我已使用帖子中链接的脚本和自定义 macdeployqt 来完成这项工作。

脚本:https://gist.github.com/lasconic/5965542 自定义 macdeployqt:https://github.com/MaximAlien/macdeployqt

Qt 似乎不太关注桌面开发,只是解释了一个尚未修复的错误。

【讨论】:

    猜你喜欢
    • 2017-06-29
    • 1970-01-01
    • 2018-02-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-22
    相关资源
    最近更新 更多