當我運行以下代碼時:
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 上修復它?
uj5u.com熱心網友回復:
感謝問題和答案的原始作者,我在這里找到的原始解決方案 -chriam.
我將在這篇文章中描述原始解決方案中未提及的一些關鍵點。
您必須從 Oracle 云安裝 MySQL
使用
QT maintenanceTool
并選擇選項Add or remove components.
從串列中選擇您當前的 QT 版本并標記Sources
,然后單擊下一步并等待檔案下載。按照此處的說明進行安裝
ninja
cd
在我的情況下到您的 Src 檔案夾:cd /Users/lamens/Qt/6.3.2/Src
運行以下命令并等待其編譯
./configure -sql-mysql -- -DCMAKE_INCLUDE_PATH="/usr/local/mysql/include" -DCMAKE_LIBRARY_PATH="/usr/local/mysql/lib"
cd
在我的情況下到你的 sqldrivers 檔案夾:cd /Users/lamens/Qt/6.3.2/macos/plugins/sqldrivers
運行
mkdir build_sqldrivers
然后cd build_sqldrivers
運行命令:您的系統用戶
/Users/<user>/Qt/<qt_version>/macos/bin/qt-cmake -G Ninja /Users/<user>/Qt/<qt_version>/Src/qtbase/src/plugins/sqldrivers -DCMAKE_INSTALL_PREFIX=/Users/<user>/Qt/<qt_version>/macos -DMySQL_INCLUDE_DIR="/usr/local/mysql/include" -DMySQL_LIBRARY="/usr/local/mysql/lib/libmysqlclient.dylib" -DCMAKE_OSX_ARCHITECTURES="arm64
在哪里,您的 QT 版本在哪里:D。<user>
<qt_version>
sed -i -e 's/-arch x86_64/-arch arm64/g' /Users/<user>/Qt/<qt_version>/macos/plugins/sqldrivers/build_sqldrivers/build.ninja
如果失敗,請在build.ninja
(它位于build_sqldrivers
檔案夾中)檔案中將所有出現arch x86_64
的arch arm64
.在
build_sqldrivers
檔案夾中運行cmake --build .
在
build_sqldrivers
檔案夾中運行cmake --install .
然后使用:找到您的庫
find ~/Qt -name libqsqlmysql.dylib
并將新生成的移動libqsqlmysql.dylib
到該/Users/<user>/Qt/<qt_version>/macos/plugins/sqldrivers
檔案夾??。瞧!
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/513284.html
上一篇:Qt平臺DLLqwindows.dll在使用CMake和vcpkg在VisualStudio中構建時未復制到平臺目錄