【问题标题】:QMYSQL driver not loaded on Mac OS for Mac M1/M2 users未在 Mac OS 上为 Mac M1/M2 用户加载 QMYSQL 驱动程序
【发布时间】:2022-09-30 20:05:02
【问题描述】:

当我运行以下代码时:

    QSqlDatabase db = QSqlDatabase::addDatabase(\"QMYSQL\");
    db.setHostName(\"localhost\");
    db.setDatabaseName(\"SecureChat\");
    db.setUserName(\"root\");
    db.setPassword(\"zTmUHsbEKZZlWhfofM\");
    bool ok = db.open();

    qDebug() << db.lastError();

我收到错误: QT/C++ QSqlDatabase: QMYSQL driver not loaded on OSx

如何在 Mac m1 上修复它?

    标签: c++ mysql qt arm apple-m1


    【解决方案1】:

    原来的解决方案我有found here感谢原作者问答-chriam.

    我将在这篇文章中描述原始解决方案中未提及的一些关键点。

    1. 你必须安装MySQL from Oracle cloud

    2. 使用QT maintenanceTool 并选择选项Add or remove components. 从列表中选择您当前的QT 版本并标记Sources,然后单击下一步并等待文件下载。

    3. 按照指令here to 安装ninja

    4. 在我的情况下,cd 到您的 Src 文件夹:cd /Users/lamens/Qt/6.3.2/Src

    5. 运行以下命令并等待它的complitaion ./configure -sql-mysql -- -DCMAKE_INCLUDE_PATH="/usr/local/mysql/include" -DCMAKE_LIBRARY_PATH="/usr/local/mysql/lib"

    6. cd 在我的情况下到您的 sqldrivers 文件夹:cd /Users/lamens/Qt/6.3.2/macos/plugins/sqldrivers

    7. 运行mkdir build_sqldrivers,然后运行cd build_sqldrivers

    8. 运行命令:/Users/&lt;user&gt;/Qt/&lt;qt_version&gt;/macos/bin/qt-cmake -G Ninja /Users/&lt;user&gt;/Qt/&lt;qt_version&gt;/Src/qtbase/src/plugins/sqldrivers -DCMAKE_INSTALL_PREFIX=/Users/&lt;user&gt;/Qt/&lt;qt_version&gt;/macos -DMySQL_INCLUDE_DIR="/usr/local/mysql/include" -DMySQL_LIBRARY="/usr/local/mysql/lib/libmysqlclient.dylib" -DCMAKE_OSX_ARCHITECTURES="arm64 &lt;user&gt; 是您的系统用户,&lt;qt_version&gt; 是您的 QT 版本:D。

    9. sed -i -e 's/-arch x86_64/-arch arm64/g' /Users/&lt;user&gt;/Qt/&lt;qt_version&gt;/macos/plugins/sqldrivers/build_sqldrivers/build.ninja 如果失败,请在build.ninja(位于build_sqldrivers 文件夹中)文件中将所有出现的arch x86_64 更改为arch arm64

    10. build_sqldrivers 文件夹cmake --build . 运行

    11. build_sqldrivers文件夹cmake --install .运行

    12. 然后使用:find ~/Qt -name libqsqlmysql.dylib 定位您的库并将新生成的libqsqlmysql.dylib 移动到/Users/&lt;user&gt;/Qt/&lt;qt_version&gt;/macos/plugins/sqldrivers 文件夹。

    13. 瞧!

    【讨论】:

      猜你喜欢
      • 2016-11-19
      • 2020-08-02
      • 1970-01-01
      • 1970-01-01
      • 2022-12-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多