簡體   English   中英

QT qmysql 驅動程序未加載

[英]QT qmysql driver not loaded

我知道這個論壇上已經有很多關於這個問題的話題,但我沒有設法解決我的問題。

我的配置如下:

QT 版本:5.14.2 - mscv2017_64

編譯器:mscv amd64

我的問題是我的應用程序沒有加載 libmysql.dll。 這是我所做的:

我打開了 qt 提供的命令行 MSCV 2017 64bits 並使用vcvarsall.bat amd64初始化了我的環境。 然后我按照文檔中的說明構建了 sql 驅動程序。

這是 qmake 調用的結果: 在此處輸入圖像描述

然后,運行nmakenmake install並在文件夾C:\Qt\5.14.2\msvc2017_64\plugins\sqldrivers中找到以下文件。 在此處輸入圖像描述

然后我在創建應用程序的 exe 文件的文件夾中添加了libmysql.dll 我從 mysql 服務器安裝文件夾C:\Program Files\MySQL\MySQL Server 8.0\lib得到這個文件。

然后我重建了我的應用程序,但我仍然出現同樣的錯誤,說驅動程序沒有加載。 我使用QT_DEBUG_PLUGINS=1標志進行編譯,得到了 output:

“插件 'C:/Qt/5.14.2/msvc2017_64/plugins/sqldrivers/qsqlpsqld.dll' 使用不兼容的 Qt 庫。(不能混合調試和發布庫。)”不是插件 QFactoryLoader::QFactoryLoader() 檢查目錄路徑“C:/Users/Thomas Bouchan/Documents/Personal/C++/SSVP/build-SSVP-project-Desktop_Qt_5_14_2_MSVC2017_64bit-Release/release/sqldrivers”... 無法加載庫 C:\Qt\5.14.2\msvc2017_64\plugins sqldrivers\qsqlmysql.dll:找不到指定的模塊。 QLibraryPrivate::loadPlugin failed on "C:/Qt/5.14.2/msvc2017_64/plugins/sqldrivers/qsqlmysql.dll": "Cannot load library C:\Qt\5.14.2\msvc2017_64\plugins\sqldrivers\qsqlmysql.dll:指定的模塊無法找到。” QSqlDatabase:未加載 QMYSQL 驅動程序 QSqlDatabase:可用驅動程序:QSQLITE QMYSQL QMYSQL3 QODBC QODBC3 QPSQL QPSQL7"

從這里我不知道該怎么辦,因為在指定的文件夾中,dll 在那里......是64位還是32位的問題? 我應該用另一個編譯器(不是amd64嗎?)構建驅動程序?

我終於設法讓它工作了。

驅動程序的編譯沒有問題,但問題來自libmysql.dll文件。 我不知道這個 dll 發生了什么,但是當我用下載的存檔qsqlmysql.dll_Qt_SQL_driver_5.14.2_MSVC2017_64-Bit.zip替換它時。 我只需要替換 dll,而不是使用存檔的插件。

Opening the qsqlmysqld.dll with the dependency walker, I found out that two additional dlls files are required in libmysql.dll : LIBSSL-1_1-X64.dll and LIBCRYPTO-1_1-X64.dll . 它們可以在 mysql 服務器的 bin 目錄中找到。 在我的情況下C:\Program Files\MySQL\MySQL Server 8.0\bin 在可執行文件的目錄中添加這些文件可以解決問題。 感謝@king_nak 的提示!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM