程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> Ubuntu,QT5連接MySQL,ubuntuqt5mysql

Ubuntu,QT5連接MySQL,ubuntuqt5mysql

編輯:C++入門知識

Ubuntu,QT5連接MySQL,ubuntuqt5mysql


用QT連接MySQL需要共享庫 libqsqlmysql.so的驅動,路徑在plugin/sqldrivers目錄下,乍看已經可用了,其實不然。

用ldd命令分析一下,libmysqlclient_r.so.* => not found ,後明顯libmysqlclient_r.so.* 缺少另一個共享庫,他們是依賴關系,解決了這個問題QT才能真的連接到MySQL數據庫。而我的/usr/lib64/下的共享庫版本比較高是 libmysqlclient.so.18,想到了一個比較投機的想法ln創建符號鏈接,然而這並沒有什麼卵用。

PS:ldd:linux下分析打印可執行檔依賴的共享庫文件。

讓我哭笑不得是QT5.5是我從官網下載的,居然依賴的是低版本,你們編譯的時候能不能不偷懶啊,估計他們直接從低版本拷貝的libqsqlmysql.so,沒辦法了嗎?顯然不是,打開qt官網下載源碼,自己編譯。下載過程略過,非常好找 http://download.qt.io/official_releases/qt/5.5/5.5.1/submodules/ (暫時沒有qt5.5的源碼),找到qtbase那個大概60M。MySql驅動的路徑為qtbase/src/plugins/sqldrivers/mysql/。

  • qmake "INCLUDEPATH+=/usr/include" "LIBS+=-L/usr/lib -lmysqlclient_r" mysql.pro

(include為頭文件“mysql.h”的位置,可用“ sudo find -name "mysql.h" ”找找看,lib為共享庫到位置)

  • make
  • sudo make install

PS:如果沒有沒找到“mysql.h”文件,需要安裝“mysql-libmysqlclient-dev”

  • sudo apt-get install libmysqlclient-dev

在QT的幫助手冊中輸入“SQL Database Drivers”,可查看其他數據庫到連接方式

這樣就能連接MySQL數據庫了。

參考資料:

  CentOS7 (64位) 下QT5.5 連接MySQL數據庫(driver not loaded)

  fatal error: mysql/mysql.h: No such file or directory 解決方法

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved