本文目錄一覽:
- 1、qt5.8 for mingw編譯靜態版本時怎麼加mysql
- 2、QT編譯mysql驅動為啥沒有qsqlmysqld4.dll這個文件產生?壓根就不產生.dll文件就產生了一個.a文件
- 3、qt已經成功編譯mysql數據庫,為什麼不能加載成功
- 4、qt mysql編譯報錯cannot find -llibmysql
- 5、【QT】編譯mysql驅動出現問題
qt5.8 for mingw編譯靜態版本時怎麼加mysql
注意編譯器一定要和MYSQL的平台版本一致,32位的用32位的編譯器編譯,64位的用64位的編譯器編譯。
準備工作:MYSQL的目錄:D:\SQL_Server\mariadb
Qt5.1.1的目錄:C:\Qt
1. 先將D:\SQL_Server\mariadb中的include\和lib\文件夾複製到根目錄(C:),因為後面make時路徑不能有空格。
2. 打開QT5.1.1 for Desktop(MinGW 4.8)
cd C:\Qt\Qt5.1.1\5.1.1\Src\qtbase\src\plugins\sqldrivers\mysql
qmake “INCLUDEPATH+=D:\SQL_Server\mariadb\include” “LIBS+=D:\SQL_Server\mariadb\lib\libmysql.lib” mysql.pro
mingw32-make
如果出現找不到mysql.h文件就用qtcreator打開mysql.pro文件,配置項目,然後編譯,就會出現錯誤提示,把#include 改成#include ,編譯就行了,或回到命令行再次執行mingw32-make即可.
3. 編譯成功後。
進入到C:\Qt\Qt5.1.1\5.1.1\Src\qtbase\plugins\sqldrivers目錄下,選中qsqlmysql.dll和 qsqlmysqld.dll兩個文件,
複製到C:\Qt\Qt5.1.1\5.1.1\mingw48_32\plugins\sqldrivers目錄下。
QT編譯mysql驅動為啥沒有qsqlmysqld4.dll這個文件產生?壓根就不產生.dll文件就產生了一個.a文件
首先把你工程目錄下的所有makefile 、makefilerelease 、.pro.user等之前的編譯數據刪除掉
打開你的.pro文件,找到這樣一句:
TEMPLATE = …
把他改成:
TEMPLATE = lib
再重新編譯試試
qt已經成功編譯mysql數據庫,為什麼不能加載成功
我在學習qt mysql的時候
網上搜索資料,好不容易編譯出來mysql
可是 我把編譯的dll複製到對應目錄下 運行後提示:不能加載
後來終於知道是為什麼了
因為編譯好了,把編譯成功的dll放在
D:\Qt\Qt5.0.1\5.0.1\mingw47_32\plugins\sqldrivers 這個目錄下 還不行的
還有一個步驟
就是把你安裝的mysql 也就是 E:\xampp\mysql\lib 這個目錄下的 libmysql.dll 這個文件複製到 D:\Qt\Qt5.0.1\5.0.1\mingw47_32\bin 這個目錄
然後測試 就可以正常運行了
為什麼要這樣一個步驟,我想你編譯的dll需要依賴mysql官方的那個libmysql.dll 所以 ,你需要複製過去
大概的步驟是:
1.下載mysql最新版本,安裝的時候選擇全部安裝,否則你安裝的mysql里沒有對應的c++文件 【也就是沒有E:\xampp\mysql\lib 和 E:\xampp\mysql\include 這2個目錄】 這2個目錄是很重要的
2.下載qt官方的qt源碼,【如果你下載的qt的安裝版,默認是沒有源碼的,你需要去qt官方再次下載一個源碼】
qt mysql編譯報錯cannot find -llibmysql
在pro文件中增加第三方庫文件的語法如下
LIBS += -LMYSQLLIBPATH -lmysql
-L 參數後面是libmysql.lib文件所在的目錄路徑
-l 參數後面是需要連接的libmysql.lib庫文件名稱(去掉開頭的lib和結尾的.lib)
【QT】編譯mysql驅動出現問題
看起來你並不是要編譯mysql庫,而是要使用mysql庫啊: -llibmysql 然後接下來這兩條信息是說沒找到libmysql.dll文件: c:/qt/mingw/bin/../lib/gcc/
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/241576.html