D:\QT\5.14.2\msvc2017_64\mkspecs\features\qt_plugin.prf:59: error: Cannot write file D:\mkspecs\modules-inst\qt_plugin_qsqlmysql.pri: Cannot create parent directory
使用vs+qt连接mysql数据库时报错该如何解决?
首先使用qDebug()<<QSqlDatabase::drivers();命令看看有没有安装mysql驱动
编译器的输出为![]()
没看到QMYSQL,说明没有安装这个驱动
当 Qt 应用程序没有找到 QMYSQL 驱动时,往往是因为 MySQL 驱动未被编译,下面详细解释手动编译 MySQL 驱动的步骤及原理。
前提条件
要编译 MySQL 驱动,需要满足以下两个主要条件:
- 安装 Qt 源码:Qt 默认安装包中可能不包含编译好的 MySQL 驱动,所以需要下载 Qt 的源码包。你可以从 Qt 官方网站(Open Source Development | Open Source License | Qt )下载适合你系统的 Qt 源码版本。
- 安装 MySQL 开发库:编译 MySQL 驱动依赖于 MySQL 开发库,该库包含了编译所需的头文件(如
mysql.h)和库文件(如libmysql.lib或libmysqlclient.so)。你可以从 MySQL 官方网站(https://dev.mysql.com/downloads/installer/ )下载并安装适合你系统的 MySQL 版本,在安装过程中要确保选择安装开发组件。
详细步骤
1. 进入 MySQL 驱动源码目录
cd <Qt 源码目录>/qtbase/src/plugins/sqldrivers/mysql
解释:cd 是 Linux 和 macOS 系统中的命令,用于切换当前工作目录;在 Windows 系统的命令提示符或 PowerShell 中也有相同的功能。<Qt 源码目录> 是你下载并解压的 Qt 源码所在的目录,进入该目录下的 qtbase/src/plugins/sqldrivers/mysql 子目录,这个目录包含了 MySQL 驱动的源码文件和项目文件。
2. 使用 qmake 生成 Makefile
qmake "INCLUDEPATH+=<MySQL 安装目录>/include" "LIBS+=-L<MySQL 安装目录>/lib -lmysqlclient" mysql.pro
- 解释:
qmake是 Qt 提供的一个工具,用于根据.pro项目文件生成 Makefile(在 Windows 上可能是.vcxproj文件),Makefile 包含了编译项目所需的指令和规则。INCLUDEPATH是一个环境变量,用于指定编译器查找头文件的路径。"INCLUDEPATH+=<MySQL 安装目录>/include"表示将<MySQL 安装目录>/include路径添加到编译器的头文件搜索路径中,这样编译器就能找到mysql.h等头文件。LIBS是一个环境变量,用于指定链接器查找库文件的路径和要链接的库名。"LIBS+=-L<MySQL 安装目录>/lib -lmysqlclient"表示将<MySQL 安装目录>/lib路径添加到链接器的库文件搜索路径中,并指定要链接mysqlclient库。mysql.pro是 MySQL 驱动的项目文件,qmake根据这个文件生成 Makefile。
3. 编译 MySQL 驱动
bash
make
- 解释:
make是一个常用的编译工具,它根据 Makefile 中的规则来编译项目。在 Windows 系统上,可能需要使用nmake命令,它是 Microsoft 提供的类似于make的工具。执行make命令后,编译器会根据 Makefile 中的指令编译 MySQL 驱动的源码文件,生成目标文件和最终的驱动库文件(如qsqlmysql.dll或libqsqlmysql.so)。
4. 安装 MySQL 驱动
make install
解释:make install 命令会将编译好的 MySQL 驱动库文件安装到 Qt 的插件目录中,这样 Qt 应用程序就能找到并加载 QMYSQL 驱动。具体的安装路径取决于 Qt 的配置,一般在 <Qt 安装目录>/plugins/sqldrivers 目录下。
注意事项
- 路径问题:在执行上述命令时,要确保
<Qt 源码目录>和<MySQL 安装目录>路径正确,并且路径中不包含中文或特殊字符,否则可能会导致编译失败。 - 权限问题:在 Linux 或 macOS 系统上,执行
make install命令可能需要管理员权限,可以使用sudo make install来获取权限。 - 编译器版本:确保编译 Qt 和 MySQL 驱动时使用的编译器版本与运行程序时的环境一致,否则可能会导致兼容性问题。
如果出现qmake : 无法将“qmake”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。请检查名称的拼写,如果包括路径,请确保路径正 确,然后再试一次。
解决办法
1. 确认 qmake 已安装
要保证你已经正确安装了 Qt 开发工具包。你可以通过以下方式确认:
- 打开 Qt 安装目录,通常在
C:\Qt或者其他自定义的安装路径下,查找是否存在qmake.exe文件。一般来说,qmake.exe位于<Qt 安装目录>\<Qt 版本>\<编译器版本>\bin目录下,例如C:\Qt\Qt5.15.2\msvc2019_64\bin。
2. 配置环境变量
若 qmake 已经安装,但系统无法找到它,需要将 qmake 所在的路径添加到系统的环境变量中。具体步骤如下:
- Windows 10/11:
- 右键点击 “此电脑”,选择 “属性”。
- 在左侧导航栏中点击 “高级系统设置”。
- 在弹出的 “系统属性” 窗口中,点击 “环境变量” 按钮。
- 在 “系统变量” 列表中,找到 “Path” 变量,选中它并点击 “编辑”。
- 在 “编辑环境变量” 窗口中,点击 “新建”,然后输入
qmake.exe所在的路径,例如C:\Qt\Qt5.15.2\msvc2019_64\bin。 - 依次点击 “确定” 保存设置。
3. 手动指定 qmake 路径
如果你不想修改环境变量,也可以在命令行中手动指定 qmake 的完整路径。例如:
"C:\Qt\Qt5.15.2\msvc2019_64\bin\qmake" "INCLUDEPATH+=D:\sql\mysql-8.0.36-winx64\include" "LIBS+=-L\"D:\sql\mysql-8.0.36-winx64\lib\" -lmysql" mysql.pro
注意:路径中的双引号需要根据具体情况进行转义,确保路径被正确识别。
4. 重新打开命令提示符或 PowerShell
在修改环境变量后,需要重新打开命令提示符或 PowerShell,使环境变量的修改生效。然后再次尝试执行 qmake 命令,查看问题是否解决。
通过以上步骤,应该可以解决系统无法识别 qmake 命令的问题。如果问题仍然存在,可能需要检查 Qt 安装是否正确,或者尝试重新安装 Qt 开发工具包。

3619

被折叠的 条评论
为什么被折叠?



