1. 程式人生 > 其它 >Qt中Mac編譯MySQL驅動

Qt中Mac編譯MySQL驅動

準備工作

  1. mysql安裝包
  2. Qt安裝時選擇了Source

編譯過程

  1. 下載並解壓MySQL安裝包。
  2. 修改mysql.pro檔案(Qt/5.12.10/Src/qtbase/src/plugins/sqldrivers/mysql/mysql.pro)。
   TARGET = qsqlmysql
   
   HEADERS += $$PWD/qsql_mysql_p.h
   SOURCES += $$PWD/qsql_mysql.cpp $$PWD/main.cpp
   
   #QMAKE_USE += mysql    ## 這個位置註釋掉
   
  # 新增下面一個依賴與一個庫
  INCLUDEPATH+=/Users/rey/.sbin/mysql-8.0.26-macos11-x86_64/include
  LIBS += -L//Users/rey/.sbin/mysql-8.0.26-macos11-x86_64/lib -lmysqlclient
 
 OTHER_FILES += mysql.json
  
  PLUGIN_CLASS_NAME = QMYSQLDriverPlugin
  include(../qsqldriverbase.pri)

在編譯的過程中可能會報錯提示找不到qtsqldrivers-config.pri;
直接將qsqldriverbase.pri複製一份名稱為 qtsqldrivers-config.pri即可。

編譯: qmake ./mysql.pro

新增驅動

make && make install 會自動新增驅動到編譯器的sqldrivers目錄中。
找到新編譯的驅動,使用
otool -L libmysqlclient.dylib 檢測一下依賴

正常會找不到庫。@rpath/libmysqlclient.21.dylib

將mysql 安裝包中的這個檔案建立一個軟連線放到 clang_x64/lib/目錄即可。

sudo ln -s /mysql/lib/libmysqlclient.dylib xxxx/clang_64/lib/libmysqlclient.21.dylib