QT6.5.2编译PostgreSql驱动

一、环境

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")

#mysql驱动编译配置
#SET(FEATURE_sql_mysql ON)
#SET(MySQL_INCLUDE_DIR "E:/software/QT/src/mysql8.0/include")
#SET(MySQL_LIBRARY "E:/software/QT/src/mysql8.0/lib/libmysql.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()  ;
  }

 至此大功告成

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Qt 6.5.2 是一个跨平台的应用程序开发框架,用于开发图形界面应用程序。MySQL驱动Qt的一个重要组件,用于与MySQL数据库进行交互。然而,Qt 6.5.2 版本中没有提供内置的MySQL驱动。 要在Qt 6.5.2中使用MySQL数据库,我们需要手动安装MySQL驱动程序。首先,我们需要下载适用于Qt 6.5.2版本的MySQL驱动程序。通常,可以通过MySQL官方网站或Qt官方网站找到适用于特定Qt版本的MySQL驱动。 一旦我们下载了MySQL驱动程序,接下来需要将其复制到Qt的安装目录下。具体来说,我们需要将MySQL驱动程序的库文件(一般是以.lib或.so为扩展名的文件)复制到Qt安装目录下的plugins/sqldrivers文件夹中。 然后,在Qt项目的.pro文件中,我们需要添加数据库模块的声明和链接。具体来说,我们需要添加如下三行代码: ``` QT += sql LIBS += -lmysql INCLUDEPATH += <path_to_mysql_header_files> ``` 其中,`<path_to_mysql_header_files>`是MySQL头文件的路径。 完成上述步骤后,我们就可以在Qt项目中使用MySQL数据库了。可以使用Qt提供的SQL相关类和函数来连接到MySQL数据库,并执行各种数据库操作,如查询、插入、更新和删除等。 总之,Qt 6.5.2虽然没有内置的MySQL驱动,但我们可以手动安装MySQL驱动程序,并通过适当的配置和链接使其与Qt项目搭配使用。这样,我们就能在Qt 6.5.2中顺利地与MySQL数据库进行交互了。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值