QT6.5.2编译PostgreSql驱动

news/2024/7/9 23:23:09 标签: postgresql, c++, qt

一、环境

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.niftyadmin.cn/n/5055919.html

相关文章

华为智能高校出口安全解决方案(3)

本文承接&#xff1a; https://qiuhualin.blog.csdn.net/article/details/133267254?spm1001.2014.3001.5502 重点讲解华为智能高校出口安全解决方案的攻击防御&安全运维&日志审计的部署流程。 华为智能高校出口安全解决方案&#xff08;3&#xff09; 课程地址攻击防…

国庆出游,景区该怎么接住这泼天的流量?媒介媒介盒子告诉你

国庆出游&#xff0c;景区该怎么接住这泼天的流量&#xff1f;媒介媒介盒子告诉你 假期倒计时。这一次&#xff0c;几亿人又要大规模出游了&#xff0c;景区最不愁的&#xff0c;就是没有流量。那么景区该怎么接住这泼天的流量呢&#xff1f; 1、利用社交媒体营销。 利用微信…

【ES6知识】Generator 函数 与 yield 关键字

文章目录 1 Generator 函数1.1 概述1.2 执行机制 1.3 yield 表达式1.3.1 概述1.3.2 yield表达式与return语句异同1.4 next() 方法参数 1 Generator 函数 1.1 概述 ES6 新引入了 Generator 函数&#xff0c;可以通过 yield 关键字&#xff0c;把函数的执行流挂起&#xff0c;为…

2009-2018年各省涉农贷款数据(wind)

2009-2018年各省涉农贷款数据&#xff08;wind&#xff09; 1、时间&#xff1a;:209-2018年 2、范围&#xff1a;31省 3、来源&#xff1a;wind 4、指标&#xff1a;涉农贷款 指标解释 &#xff1a;在涉农贷款的分类上&#xff0c;按照城乡地域将涉农贷款分为农村贷款和城…

TS(TypeScript)和axios实现VUE请求重试

1.使用场景 Vue和Axios的错误处理与数据请求重试机制 在Web开发中&#xff0c;数据请求和错误处理是必不可少的一部分。Vue是一套用于构建用户界面的JavaScript框架&#xff0c;而Axios是一个基于Promise的、支持浏览器和Node.js的HTTP客户端库。本文将介绍如何在Vue中使用Ax…

axure入门

文章目录 一、线框图1.1 矩形的使用 二、高保真图2.1 使用图标2.1.1 点赞功能方法一&#xff1a;在面板内设置交互方法二&#xff1a;在面板外设置交互2.1.2 按钮功能 2.2 热区的使用2.3 动态面板2.4 原件的显示和隐藏2.5元件的交互样式2.6 web表单的设计2.7 表格2.8 嵌入视频/…

亿图脑图新版本支持思维导图一键生成PPT、音视频等格式,办公提效再升级

近日&#xff0c;国产思维导图软件——亿图脑图MindMaster发布了全新版本V10.9.0&#xff0c;本次亿图脑图的升级给用户带来了极大的惊喜。全新升级的亿图脑图MindMaster不仅支持20格式的文件智能解析成思维导图&#xff0c;还支持思维导图一键生成PPT、音频、视频等内容形式&a…

DirectX 3D C++ 圆柱体的渲染(源代码)

代码功能&#xff1a;渲染一个绕中心轴自转的圆柱体。要求该圆柱体高度为3.0&#xff0c;半径为0.5。 #include <windows.h> #include <d3d11.h> #include <d3dx11.h> #include <d3dcompiler.h> #include <xnamath.h> #include <cmath> #…