QT配置MySQL数据库 ninja: build stopped: subcommand failed

news2024/11/22 20:02:08

QT配置MySQL数据库

我当前的软件版本:QT Creator 10.0.2 (community)MingW 6.4.3 (QT6)MySQL 8.0

MySQL不配置支持的数据库有QList("QSQLITE", "QODBC", "QPSQL"),这个时候是不支持MYSQL数据库的,所以需要进行配置。通常老版本的QT配置是通过修改QT提供的源文件mysql.pro进行重新编译,可以参考QT - QT5.14.2 连接并操作MySQL8.0。对于新版本的QT并不存在mysql.pro文件,只有CMakeLists.txt文件,所以可以参考qt6.5.0MySQL驱动手动编译以及数据库连接详细教程以及注意事项附资源链接。按照这个教程进行执行到更改.cmake.conf的时候,可以看见需要配置MYSQL的路径,这里就会很容易出现问题。按照源作者的代码:

SET(FEATURE_sql_mysql ON)
SET(MySQL_INCLUDE_DIR "刚才复制的include文件夹路径/include")
SET(MySQL_LIBRARY "刚才复制的lib文件夹/lib/libmysql.lib")

有时我们在安装MYSQL就直接按照默认路径开始安装,所以MYSQL的路径在C:\Program Files\MySQL\MySQL Server 8.0这个目录下,所以路径中又存在中文,又有空格存在,如果正常执行下去,那么在项目构建的时候就会出现ninja: build stopped: subcommand failed,这个错误。找遍全网,没有明确解决方案,看见一个博主说是路径访问权限出现问题(没有C盘文件权限),所以考虑到QT编译的时候只需要includelib文件夹下的文件,所以能不能直接拷贝出来,放到一个目录下进行编译。我们将MYSQL的includelib文件夹拷贝到一个新文件夹中,现在的路径中没有空格也不再C盘。然后修改.cmake.conf对应的值。进行重新编译,就不会再出现错误了。

然后将编译文件拷贝到对应的路径下面


然后开始验证:
新建一个QT项目,在项目中加上以下代码,(需要根据自己的情况进行配置密码等):

bool MainWindow::createConnection()
{
    QSqlDatabase db=QSqlDatabase::addDatabase("QMYSQL");//添加一个默认连接,数据库驱动为QMYSQL
    //设置主机名有两种方式
    //    db.setHostName("127.0.0.1");//设置主机名,从MySQL的Workbench中查看
    db.setHostName("localhost");//设置主机名,从MySQL的Workbench中查看
    db.setPort(3306);//设置端口
    db.setDatabaseName("chat");//设置数据库名(这个数据库必须是已经存在的数据库)
    db.setUserName("root");//设置用户名
    db.setPassword("xiehou");//设置密码(你自己的密码)
    if(!db.open())
    {
        QMessageBox::critical(0,"Cannot open database",
                              "Unable to establish a database connection.",QMessageBox::Cancel);//提示出错
        qDebug()<<db.lastError().text();//输出错误信息
        return false;
    }
    else
    {
        QMessageBox::information(0,"Successfully","Establish a database connection",QMessageBox::Ok);//提示成功
    }
    return true;
}

另外需要在pro配置文件加上QT += sql和下方的MYSQL数据库配置信息(有空格也不要紧)才能引入SQL相关的头文件。

INCLUDEPATH += "C:\Program Files\MySQL\MySQL Server 8.0\include"
LIBS += "C:\Program Files\MySQL\MySQL Server 8.0\lib\libmysql.lib"

然后再主程序进行执行改代码,成功之后就会显示成功的弹窗:

错误的话就会显示错误信息,根据错误信息在进行处理。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1041354.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Rust之自动化测试(二):控制测试如何运行

开发环境 Windows 10Rust 1.72.1 VS Code 1.82.2 项目工程 这里继续沿用上次工程rust-demo 控制测试如何运行 正如cargo run编译您的代码&#xff0c;然后运行生成的二进制文件一样&#xff0c;cargo test在测试模式下编译您的代码&#xff0c;然后运行生成的测试二进制文件…

【计算机网络笔记五】应用层(二)HTTP报文

HTTP 报文格式 HTTP 协议的请求报文和响应报文的结构基本相同&#xff0c;由四部分组成&#xff1a; ① 起始行&#xff08;start line&#xff09;&#xff1a;描述请求或响应的基本信息&#xff1b;② 头部字段集合&#xff08;header&#xff09;&#xff1a;使用 key-valu…

VR全景智慧文旅解决方案,助力文旅产业转型升级

引言&#xff1a; 随着科技的不断发展&#xff0c;虚拟现实&#xff08;VR&#xff09;技术正逐渐展露其影响力&#xff0c;改变着旅游业。VR全景智慧文旅解决方案也应运而生&#xff0c;将传统旅游的体验形式从线下扩展到了线上&#xff0c;带来了不一般的文旅体验。 一.VR全…

pandas--->CSV / JSON

csv CSV&#xff08;Comma-Separated Values&#xff0c;逗号分隔值&#xff0c;有时也称为字符分隔值&#xff0c;因为分隔字符也可以不是逗号&#xff09;&#xff0c;其文件以纯文本形式存储表格数据&#xff08;数字和文本&#xff09;。 CSV 是一种通用的、相对简单的文…

优秀工具|使用Reqable替换处理过的动态混淆js

关注它&#xff0c;不迷路。 本文章中所有内容仅供学习交流&#xff0c;不可用于任何商业用途和非法用途&#xff0c;否则后果自负&#xff0c;如有侵权&#xff0c;请联系作者立即删除&#xff01; 1. 目标地址 这篇文章 爬虫神器|这是我过Debugger检测最简单的方法&a…

Qt地铁智慧换乘系统浅学( 二 )将存储的站点线路信息绘制到graphicsView(图形视图部件)

绘制 容器使用测试 画一个黑点到QGraphicsview中准备工作代码 绘制所有站点信息画线路信息准备工作代码 实现放大缩小功能放大缩小按键和建立与槽函数的连接槽函数实现效果如下bug 容器使用 Qt地铁智慧换乘系统浅学&#xff08; 1&#xff09; 测试 画一个黑点到QGraphicsvie…

JupyterNotebook的快捷键

Jupyter Notebook 有两种键盘输入模式&#xff1a;1、命令模式&#xff0c;键盘输入运行程序命令&#xff1b;这时的单元框线是蓝色。2、编辑模式&#xff0c;允许你往单元中键入代码或文本&#xff1b;这时的单元框线是绿色的。 一、命令模式 (在编辑模式下按键 Esc键进入命令…

RISC-V 指令

RISC-V指令都是32位长。 文章目录 R-Type指令格式:I-Type指令格式:S-Type指令格式:B-Type指令格式:U-Type指令格式:UJ-Type指令格式:J-Type指令格式:R4-Type指令格式:F-Type指令格式:vC-Type指令格式:CB-Type指令格式:CIW-Type指令格式:CL-Type指令格式:R-Type指…

华为云Stack的学习(八)

九、华为云Stack网络服务介绍 1.网络服务概览 1.1 租户界面的网络服务 租户登入ManageOne运营面后&#xff0c;可在服务列表中查看到网络服务。用户使用网络服务前管理员需要在Service OM上提前创建好外部网络。 1.2 华为云Stack网络服务全景图 1.3 网络服务承载网元 2.虚拟…

SpringMVC 学习(七)JSON

9. JSON 9.1 简介 JSON&#xff08;JavaScript Object Notation&#xff0c;JS 对象标记&#xff09;是一种轻量级数据交换格式&#xff0c;采用独立于编程语言的文本格式储存和表示数据&#xff0c;易于机器解析和生成&#xff0c;提升网络传输效率。 任何 JavaScript 支持…

IntelliJ IDEA 上 使用git 合并其他分支,合并某一个提交

git 合并其他分支 找到git——>merge… 选择需要合并的分支&#xff0c;不能选和当前分支一样噢 合并&#xff0c;推送即可 合并某个提交到其他分支 点击左下角git——>右键切换分支——>选择需要合并的分支——>选择需要合并的代码——>ch 推送即可

一篇文章彻底搞懂熵、信息熵、KL散度、交叉熵、Softmax和交叉熵损失函数

文章目录 一、熵和信息熵1.1 概念1.2 信息熵公式 二、KL散度和交叉熵2.1 KL散度(相对熵)2.2 交叉熵 三、Softmax和交叉熵损失函数3.1 Softmax3.2 交叉熵损失函数 一、熵和信息熵 1.1 概念 1. 熵是一个物理学概念&#xff0c;它表示一个系统的不确定性程度&#xff0c;或者说是…

redis(3)-hiredis-API函数的调用

1.API函数查询 http://github.com.redis/hiredis 2.直接在hiredis目录下新建 test_redis.c 2.1创建文件: 目录下有hiredis 2.2编译 添加环境变量 2.3运行 ./a.out 直接运行 redis-cli get itc…

算法-贪心+优先级队列-IPO

算法-贪心优先级队列-IPO 1 题目概述 1.1 题目出处 https://leetcode.cn/problems/ipo/description/?envTypestudy-plan-v2&envIdtop-interview-150 1.2 题目描述 2 回溯法 2.1 思路 2.2 代码 class Solution {int result 0;public int findMaximizedCapital(int …

基于ARM+FPGA的ISA总线/MMи总线接口转换设计在轨道交通的应用

总线广泛应用于计算机、工业生产及各种测试设备。ISA总线为IBM公司推出的基于80286CPU的PC&#xff0f;AT微型计算机用扩展总线标准&#xff0c;MMи总线是俄罗斯国内自行设计的专用测试总线&#xff0c;主要用于程控单元模块与MMи总线之间数据及控制信息的交换。在某型导弹测…

竞赛 基于深度学习的视频多目标跟踪实现

文章目录 1 前言2 先上成果3 多目标跟踪的两种方法3.1 方法13.2 方法2 4 Tracking By Detecting的跟踪过程4.1 存在的问题4.2 基于轨迹预测的跟踪方式 5 训练代码6 最后 1 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是 基于深度学习的视频多目标跟踪实现 …

HBase基础架构及存储原理

一、HBase介绍 HBase是Hadoop生态系统中的一个分布式、面向列的开源数据库&#xff0c;具有高可伸缩性、高性能和强大的数据处理能力。广泛应用于处理大规模数据集。 HBase是一种稀疏的、分布式、持久的多维排序map 稀疏&#xff1a;对比关系型数据库和非关系型数据库&#xf…

ubuntu下网卡插入网线后仍然不连接

网卡驱动已经安装&#xff0c;在settings里可以看到该网卡设备&#xff0c;但是插入网线后仍然不会连接&#xff1a; 鼠标点击也无效。 可尝试&#xff1a; 1. ifconfig找到该网卡&#xff0c;比如我的网卡是 enx0826ae3e81aa 2. sudo ifconfig enx0826ae3e81aa down sud…

OpenCV两张图片实现稀疏点云的生成

1 E矩阵 1.1 由F到E E K T ∗ F ∗ K E K^T * F * K EKT∗F∗K E 矩阵可以直接通过之前算好的 F 矩阵与相机内参 K 矩阵获得 Mat E K.t() * F * K;相机内参获得的方式是一个较为复杂的方式&#xff0c;需要使用棋盘进行定位获得&#xff0c;我们这里直接使用了 OpenMVG 提…

C语言学习(1)—— 环境安装和配置

运行C语言和C程序需要安装MinGW和VSCode。 一. 安装MinGW 1、进入官网下载MinGW&#xff1a;https://sourceforge.net/projects/mingw-w64/files/ 2、解压缩 3、配置环境变量 4、检查是否安装成功 二. 安装VSCode 1、进入官网下载VSCode&#xff1a;https://code.visualstud…