QT6.5.2编译PostgreSql驱动

news2024/12/23 17:40:06

一、环境

1、操作系统:win11

2、qt版本:6.5.2

3、PostgreSql版本:14.9

二、下载qbase源码

1、下载地址:https://github.com/qt/qtbase/tree/6.5.2

 将下载的源码文件解压指定的的目录,找到src/plugins/sqldrivers根据自己的实际情况放置,本次我使用的目录如下:

三、编译驱动

1、编译文件配置

      进入sqldrivers目录

     (1)配置.make.conf文件

set(QT_REPO_MODULE_VERSION "6.5.2")

# 开启pg插件
SET(FEATURE_sql_psql ON)

#pg驱动头文件
SET(PostgreSQL_INCLUDE_DIR "E:/software/QT/src/pgsql14.9/include")

#pg动态库引导文件
SET(PostgreSQL_LIBRARY "E:/software/QT/src/pgsql14.9/lib/libpq.lib")

   (2)配置CmakeLists.txt

cmake_minimum_required(VERSION 3.16)
if (NOT CMAKE_PROJECT_NAME STREQUAL "QtBase" AND NOT CMAKE_PROJECT_NAME STREQUAL "Qt")
    include(.cmake.conf)
    project(QSQLiteDriverPlugins
        VERSION "${QT_REPO_MODULE_VERSION}"
        DESCRIPTION "Qt6 SQL driver plugins"
        HOMEPAGE_URL "https://qt.io/"
        LANGUAGES CXX C ASM
    )
    find_package(Qt6 ${PROJECT_VERSION} CONFIG REQUIRED COMPONENTS
        BuildInternals
        Core
        Sql
     )
    qt_prepare_standalone_project()
else()
    qt_internal_upgrade_cmake_policies()
endif()

qt_feature_module_begin(
    NO_MODULE
    PUBLIC_FILE "qtsqldrivers-config.h"
    PRIVATE_FILE "qtsqldrivers-config_p.h"
)

include(configure.cmake)
add_subdirectory(psql)

2、QtCretor打开CmakeLists.txt

 

3、驱动编译

    选择项目右键选择构建,编译成功输入输出日志如下

4、Qt的mingw配置驱动文件

 将编译好的qsqlpsql.dll文件拷贝至qt的运行目录(我本机目录E:\software\QT\6.5.2\mingw_64\bin),仅仅拷贝这医个文件远远不够,还需要将postgresql运行目录下的几个文件拷贝到qt运行目录

libcrypto-1_1-x64.dll
libiconv-2.dll
libintl-9.dll
libpq.dll
libssl-1_1-x64.dll

 四、连接数据库测试

void  intiDb()
{
  QStringList  drivers =  QSqlDatabase::drivers();
  qDebug() <<  drivers;
  QSqlDatabase  db = QSqlDatabase::addDatabase("QPSQL");
  db.setHostName("server200");
  db.setDatabaseName("qt_db");
  db.setUserName("postgres");
  db.setPassword("123456");
  bool  isOk = db.open();
  qDebug() << (isOk?"连接postgresql成功":"连接postgresql失败") << 
   (isOk?"":db.lastError().text()) ;

  QSqlQuery  sqlQuery;
  sqlQuery.exec("SELECT id,name,age  FROM  t_test");
  while(sqlQuery.next())
  {
      qDebug() << sqlQuery.value("id").toInt()  <<  "  " << 
      sqlQuery.value("name").toString() << ""  <<  sqlQuery.value("age").toInt()  ;
  }

 至此大功告成

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

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

相关文章

基于springboot+vue的校园资产管理系统

博主主页&#xff1a;猫头鹰源码 博主简介&#xff1a;Java领域优质创作者、CSDN博客专家、公司架构师、全网粉丝5万、专注Java技术领域和毕业设计项目实战 主要内容&#xff1a;毕业设计(Javaweb项目|小程序等)、简历模板、学习资料、面试题库、技术咨询 文末联系获取 项目介绍…

小皮面板配置Xdebug,调试单个php文件

小皮面板配置Xdebug 首先下载phpstrom&#xff0c;和小皮面板 打开小皮面板&#xff0c;选中好要使用的php版本 然后点击【管理】> 【php扩展】> 【xdebug】 然后打开选中好版本的php位置 D:\Program_Files\phpstudy_pro\Extensions\php\php7.4.3nts打开php.ini文件…

[0CTF 2016]piapiapia 代码审计 字符串逃逸 绕过长度限制

第一次直接打包代码 然后查看有没有洞 学习一下 降低速度扫描dirsearch -t 2 超低速 扫描扫到了 /www.zip /profile.php /register.php /upload/ 未加参数 我们直接去看看 我们直接下载备份文件即可 config.php 存在flag变量 class.php 然后我们分析一下class.php &…

Visual Studio 2019 C# winform CefSharp 中播放视频及全屏播放

VS C# winform CefSharp 浏览器控件&#xff0c;默认不支持视频播放&#xff0c;好在有大佬魔改了dll&#xff0c;支持流媒体视频播放。虽然找了很久&#xff0c;好歹还是找到了一个版本100.0.230的dll&#xff08;资源放在文末&#xff09; 首先创建一个项目 第二、引入CefSha…

VMware安装debian11虚拟机详细步骤

VMware安装debian11虚拟机详细步骤&#xff0c;超详细&#xff0c;一次搞定。 目录 1&#xff0c;新建虚拟机 2&#xff0c;开始安装 3&#xff0c;磁盘分区&#xff08;手动&#xff09; 分区设置 配置LVM卷 4&#xff0c;软件包管理器、网络镜像等 5&#xff0c;完成安…

UOS 序列号激活指令及方法

前言&#xff1a;本方案主要介绍了6种不同的激活方式&#xff0c;包括 1、在线激活&#xff1b; 2、离线激活&#xff1b; 3、激活文件激活&#xff1b; 4、终端命令激活&#xff1b; 5、试用期激活&#xff1b; 6、测试激活码激活。 附&#xff1a;激活码正版验证网页&#xf…

Fedora Linux 39 Beta 预估 10 月底发布正式版

Fedora 39 Beta 镜像于今天发布&#xff0c;用户可以根据自己的使用偏好&#xff0c;下载 KDE Plasma&#xff0c;Xfce 和 Cinnamon 等不同桌面环境版本&#xff0c;正式版预估将于 10 月底发布 Fedora 39 Beta 版本主要更新了 DNF 软件包管理器&#xff0c;并优化了 Anaconda …

kotlin的集合使用maxBy函数报NoSuchElementException

kotlin设定函数 fun test() {listOf<Int>().maxBy { it } } 查看java实现

Vue+iview 组件中通过v-for循环动态生成form表单进行表单校验

在做项目时&#xff0c;需要根据需要动态添加或新增表单&#xff0c;同时还需要对表单做校验。详情如下图&#xff1a; 刚开始做表单验证的时候&#xff0c;对于这个动态的表单验证有点难搞&#xff0c;试了好几种方法都没有搞定。最后按照下面这种方法实现了&#xff0c;以此…

Express 基础操作和详解

Express 基础操作和详解 Express.js 是一个基于 Node.js 平台的 Web 应用程序框架&#xff0c;它旨在帮助开发者轻松构建和管理 Web 服务和应用程序。Express 提供了许多强大的功能&#xff0c;使得创建可扩展、灵活且高性能的 Web 应用变得相对容易。以下是 Express 的主要特点…

Github 开启 2FA-无需下载软件实现

Github 开启 2FA 验证了&#xff0c;如果不配置&#xff0c;后续会限制登录Github, 用代码实现配置 获取密钥 setup key 点击 setup key 链接&#xff0c;获取密钥 引入相关算法的 jar <dependency><groupId>com.amdelamar</groupId><artifactId>jot…

华为存储培训

01 存储前沿技术和发展趋势 狭义的存储定义 CD、DVD、ZIP、磁带、硬盘等 广义的存储定义 存储硬件系统&#xff08;磁盘阵列&#xff0c;控制器&#xff0c;磁盘柜&#xff0c;磁带库等&#xff09; 存储软件&#xff08;备份软件&#xff1b;管理软件&#xff0c;快照&…

Eclipse初步学习使用

1.配置自动填充 window->preference 2.自动判断错误&#xff0c;并给出解决方法 3.创建可执行文件&#xff1a; 新建package&#xff0c; 包内新建 javaclass&#xff0c;选择psvm&#xff0c; 4.编写程序&#xff0c;进行执行 右键&#xff0c;选择 run as applic…

第二证券:持股还是持币?多家券商:四季度行情有望回归

上星期初&#xff0c;海外商场持续调整&#xff0c;中美利差继续探底&#xff0c;一度压制A股体现。然而上星期五方针预期提振、AI权重股开释利好、外资大幅回流&#xff0c;共同引领A股走出一波触底反弹的独立行情。展望本周&#xff0c;A股将迎来中秋国庆长假前的最终一个买卖…

深度强化学习(一)常识性普及

文章目录 机器学习、强化学习、深度学习的侧重点强化学习的简介强化学习的主要特征强化学习和机器学习的关系强化学习的发展历史 深度强化学习 一些参考的资料&#xff1a; 蘑菇书&#xff1a;https://datawhalechina.github.io/easy-rl/#/chapter1/chapter1 源代码&#xff1a…

Pycharm2023版修改镜像源

步骤1 步骤2 国内常见镜像源 阿里云 http://mirrors.aliyun.com/pypi/simple/中国科技大学 https://pypi.mirrors.ustc.edu.cn/simple/豆瓣(douban) http://pypi.douban.com/simple/清华大学 https://pypi.tuna.tsinghua.edu.cn/simple/中国科学技术大学 http://pypi.mirrors.…

微软云服务宕机超24小时 企业关键业务如何避免被“拖累”

提起“宕机”这个词&#xff0c;估计大多数企业管理层&#xff0c;技术人员都不会陌生。8月&#xff0c;微软的公有云服务以及Office365等软件&#xff0c;因为澳大利亚的极端天气&#xff0c;备用方案未能及时响应&#xff0c;导致澳洲用户出现了超过24小时的云服务“暂停”。…

C++ - 双指针_盛水最多的容器 - 快乐数 - 三数之和

盛水最多的容器 11. 盛最多水的容器 - 力扣&#xff08;LeetCode&#xff09; 给定一个长度为 n 的整数数组 height 。有 n 条垂线&#xff0c;第 i 条线的两个端点是 (i, 0) 和 (i, height[i]) 。 找出其中的两条线&#xff0c;使得它们与 x 轴共同构成的容器可以容纳最多的…

基于云的虚拟桌面基础架构的优势有哪些?

基于云的虚拟桌面基础架构 &#xff08;VDI&#xff09; OpenText™ Exceed TurboX™ &#xff08;ETX&#xff09; 长期以来一直是虚拟化在 Linux 主机上运行的图形要求苛刻的软件的黄金标准。ETX 最新版本&#xff08;12.5&#xff09;增加了许多Microsoft Windows功能&…

Android Studio 的aapt2.exe在哪个目录下

一般在&#xff1a;C:\Users\admin\AppData\Local\Android\Sdk\build-tools\30.0.2&#xff08;不一定是30.0.2&#xff0c;这个得看你的版本&#xff09; 怎么找&#xff1a; 1.打开Android studio