Mac M1 Qt连接MySQL
一、软件版本
- Qt 6.5.0
- Qt Creator 10.0.1
- mysql 8.0.31-arm64
二、安装Qt
通过Qt维护工具安装Qt
选择macOS和Source
三、编译MySQL驱动
在/Users/haikez/Qt/6.5.0/macos/plugins/sqldrivers下可以看到所有数据驱动,默认是没有libsqlmysql.dylib的。我们要做的就是编译生成它。
3.1 设置环境变量
1 | export QTDIR=/Users/haikez/Qt/6.5.0/macos |
3.2 开始编译
在~目录下,执行
1 | mkdir build-sqldrivers |
1 | qt-cmake -G"Ninja" /Users/haikez/Qt/6.5.0/Src/qtbase/src/plugins/sqldrivers -DCMAKE_INSTALL_PREFIX=/Users/haikez/Qt/6.5.0/macos -DMySQL_INCLUDE_DIR="/usr/local/mysql/include" -DMySQL_LIBRARY="/usr/local/mysql/lib/libmysqlclient.dylib" -DCMAKE_OSX_ARCHITECTURES="arm64" |
执行完上面的命令会再目录下生成如下文件
需要注意的是,Mac m1用户需要把build.ninja文件内的x86_64换成arm64,执行如下命令:
1 | sed -i -e 's/-arch x86_64/-arch arm64/g' build.ninja |
编译运行
1 | cmake --build . |
编译完会在目录下生成驱动文件
3.3 修改驱动地址
1 | cd /Users/haikez/Qt/6.5.0/macos/plugins/sqldrivers |
红色方框的mysql动态连接驱动并不是正确的这时候需要修改动态连接
1 | install_name_tool -change |
三个地址一个不能少,也不能错,修改成功后重新输入otool -L libqsqlmysql.dylib 可以查看到地址已经被修改成正确的文件路径
-------------本文结束感谢您的阅读-------------