看到网上很多人都在求Qt静态编译带Mysql,包括我自己在内也是google了N多资料才搞定,饮水思源,没有网上各位网友的帖子我至今还是懵懵懂懂,所以这里我就整理下,希望对大家有所帮助
使用环境:win10Pro 配置时关闭了杀软,包括win Defender
流程规划:下载安装必须组件 qt5.5 perl python mysql etc.
安装qt 5等组件Mysql库的转换
编译安装
配置
使用
安装Qt5安装包 这里Mingw版本:
安装过程很简单,有一点是安装的时候把source勾选上就好。编译器配置:
2. 然后是Perl和Python的安装:
把Python的环境变量(Path)添加好C:\Python27;Perl正常会自动添加,如果没有手动添加环境变量
3. MySql安装:注意mysql安装不要有空格或中文,因为Qt编译时会出问题
最后下载两个转换工具reimp和dlltool https://yunpan.cn/cPgMhxUAI29Mm 访问密码 3e31下载后把其放到d:\mysql\lib目录中
编译&准备:
首先进行Mysql库文件转换,因为Mingw是Linux格式库,而Mysql里的是Windows格式库。
从开始菜单打开 Qt 5.5 for Desktop命令行
首先切换到Mysql目录:reimp -d libmysql.lib
dlltool -k -d libmysql.def -l libmysql.a
然后如上操作进行转换,转换完成后会生成所需文件libmysql.def libmysql.a etc.
切换到源码目录
然后进行Configure
配置:Configure.bat -confirm-license -opensource -platform win32-g++ -mp -release -static -prefix "c:\Qt\5.5_static" -qt-sql-mysql -l mysql -I d:\Mysql\include -L d:\Mysql\lib -qt-sql-sqlite -qt-zlib -qt-libpng -qt-libjpeg -opengl desktop -qt-freetype -no-qml-debug -no-angle -nomake tests -nomake examples -skip qtwebkit -skip qtwebengine
编译:mingw32-make -s
这里是单线程不提示,没办法电脑配置不行所以单线程及不输出,好像这样会快很多 等吧 等吧。。。。。
安装:mingw32-make install
添加Qt版本:
打开Qt Creator -> 工具 -> 选项 -> 构件和运行 -> Qt Versions
设置构建套件:
打开C:\Qt\5.5_static\mkspecs\win32-g++文件夹编辑qmake.conf
找到 QMAKE_LFLAGS 和 QMAKE_LFLAGS_DLL 然后将后面都改成 -static 这样静态编译后生成的文件就不需要动态依赖库了
测试
没什么问题 这个时候就编译完成了 大家可以测试下是否Mysql静态编译成功
运行前把libmysql.dll放到项目生成文件夹下或windows system32里//.pro 文件里添加QT+=sql
#include
#include
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
qDebug() <
return a.exec();
}
大功告成。。。
附:静态编译文件带Mysql下载地址https://yunpan.cn/cPsyJpMryWAn8 访问密码 69ec