下载Qt

1.下载qt-creator-windows-opensource-2.8.0,下载路径:http://download.qt.io/official_releases/qtcreator/2.8/2.8.0/

例如:安装到D:\Qt\qtcreator-2.8.0路径中。

并将bin目录路径添加到环境变量中。

先安装用来写代码的Qt SDK(软件开发工具包(Software Development Kit)一般是一些被软件工程师用于为特定的软件包、软件框架、硬件平台、操作系统等建立应用软件的开发工具的集合。)

--Qt Create,下载qt-creator-windows-opensource-2.8.0.exe,下载路径http://download.qt.io/archive/qt/4.8/4.8.6/

例如:安装到本地路径是:D:\Qt\qtcreator-2.8.0。

3.安装Qt(开发软件)qt-win-opensource-4.8.5-mingw.exe(注意:在安装前将MinGW-gcc440_1.zip解压,将解压后的mingw放到D:\Qt下,否则安装qt的过程中在此路径中没有找到g++。)

执行qt应用程序会需要两个路径来分别存储qt和mingw,例如:安装的路径分别是:D:\Qt\4.8.5和D:\Qt\mingw

4.将qt和mingw路径添加到环境变量中:path+=D:\Qt\mingw\bin;D:\Qt\4.8.5;D:\Qt\4.8.5\bin;

5.重启电脑(环境变量修改后,重启电脑后才可备用)

6.依次执行以下DOS命令:

1) >g++ --version 

2) >gcc --version

3) >mingw32-make -v

每个指令执行后,会显示出他们所对应的版本,以及说明,这样代表着mingw已经顺利安装成功

7. 这个时候配置Qt Create,即可编写Qt 代码:

配置:工具——>构建和运行——>编译器——>添加(mingw)——>编译器路径(例如:D:\Qt\mingw\bin\g++.exe)——>Qt版本——>添加——>qmake路径(例如:D:\Qt\4.8.5\bin\qmake.exe)

——>构建套件:如下图设置:

如果套件前有红色叹号,点击应用(Apply)重新再打开Qt Create应用程序即可编写Qt代码。

如果不能顺利的实现Qt设置,那估计就是你安装出问题,或者配置的时候没仔细。

-----------------------------------------------------------------------------------------------------------

安装postgresql

1.下载解压并安装 postgresql-9.5.1-1-windows(postgresql 32位,因为qt连接数据库的插件不支持64位,所以qt编译驱动用到的数据库插件一定是32位的,但是执行的程序连接的数据库可以32位也可64位就无所谓了).

例如:安装路径为D:\PostgreSQLx86\9.5(注意:安装路径不能有空格,否在在接下来利用qgsql的编译驱动的时候,会失败)

2.安装完成之后,将PostgreSQL的安装路径放到环境变量中:path+=D:\PostgreSQLx86\9.5\include;D:\PostgreSQLx86\9.5\lib;D:\PostgreSQLx86\9.5\bin;

3.重启电脑(环境变量修改后,重启电脑后才可备用)

-----------------------------------------------------------------------------------------------------------

Qt连接postgresql数据库(因为Qt默认版本没有连接postgresql数据库的驱动,所以需要手动编译驱动)

1.下载qt4.8.5源码:qt-everywhere-opensource-src-4.8.5.tar(注意:一定要源码生成的数据库驱动才可以用,所以编译驱动需要下的qt4.8.5源码)

解压qt-everywhere-opensource-src-4.8.5.tar并进入目录。例如:D:\qt-everywhere-opensource-src-4.8.5\

2. 打开Qt 4.8.5 Command Prompt.lnk(在开始所有程序Qt by Digia v4.8.5 (MinGW OpenSource)的文件夹下)

依次执行以下DOS命令:

(1)>cd D:\Qt\qt-everywhere-opensource-src-4.8.5
  (2)>configure.exe

接下来一次输入:o;y,不到5分钟等待:

(3)>mingw32-make,编译会花去我大概4小时;我大概都感觉要安装错误了,不过中间有报错,我就去安装qt-win-opensource-4.8.5-mingw.exe的安装目录D:\Qt\4.8.5中copy了一个替换出问题的文件,继续命令mingw32-make。反正秉承着什么出问题就换什么,顺利执行。其实这一步还没执行结束的时候就已经往下执行了,估计需要编译驱动的文件都已经执行好了。

(4)>cd  D:\Qt\qt-everywhere-opensource-src-4.8.5\src\plugins\sqldrivers\psql

(5)>qmake "INCLUDEPATH+=D:/PostgreSQLx86/9.5/include" "LIBS+=D:/PostgreSQLx86/9.5/lib/libpq.dll" psql.pro

(6)>mingw32-make

执行成功,链接postgreSQL的驱动生成:在D:\Qt\qt-everywhere-opensource-src-4.8.5\plugins\sqldrivers下产生4个文件,libqsqlpsql4是release产生的,libqsqlpsqld4是debug产生的

3.将4个文件copy到D:\Qt\4.8.5\plugins\sqldrivers下。

4.在Qt Create新建一个项目控制台应用程序测试:也放在Qt文件夹下。

先检查生成的pgsql数据库驱动是否可用

 #include <QCoreApplication>

#include <QDebug>

#include <QtSql/QSqlDatabase>

#include <QStringList>

#include <QPluginLoader>

int main(int argc, char *argv[]){

QCoreApplication a(argc, argv);

QPluginLoader loader;

// PGSQL 驱动插件的路径

loader.setFileName("D:/Qt/4.8.5/plugins/sqldrivers/qsqlpsqld4.dll");

qDebug() << loader.load();

qDebug() << loader.errorString();

return a.exec();

}

报错:undefined reference to `_imp___ZN12QSqlDatabase7driversEv'

解决方案: .pro 文件中添加

QT +=sql

执行结果:

驱动可用:

那么调整代码,查看目前驱动有哪些:

#include <QCoreApplication>
     #include <QDebug>
     #include
<QtSql/QSqlDatabase>
     #include <QStringList>

    int
main(int argc, char *argv[])
 
   {
       
QCoreApplication a(argc, argv); 
          QStringList drivers = QSqlDatabase::drivers();
          foreach(QString driver, drivers)
          qDebug()<<driver;
          return a.exec();
 
 
 }

执行结果:

    

--------------------------------------------------------------------

写了代码连下数据库

#include <QCoreApplication>

#include <QTextCodec>

#include <QSqlDatabase>

#include <QtSql>

#include <QDebug>

bool createConnection(){

QSqlDatabase db=QSqlDatabase::addDatabase("QPSQL");

db.setHostName("localhost"); // IP

db.setHostName(5432); // 端口号

db.setDatabaseName("test"); // 数据库名称

db.setUserName("postgres"); // 用户名

db.setPassword("123456"); // 密码

if(!db.open()) {

qDebug()<<"Database Error"<<db.lastError().text();

return false;
    }

return true;
}

int main(int argc, char *argv[]){

QCoreApplication a(argc, argv);

   if(!createConnection())
       return 1;

QSqlQuery query("SELECT userno, usename FROM t1;");

while(query.next()) {

qDebug()<<"ID:"<<query.value(0).toString()<<"   NAME:"+query.value(1).toString();

}

return a.exec();

}

哇哈哈哈哈,顺利显示,我折磨两周的问题终于圆满结束!

												

win7 安装用mingw编译的Qt源码并连接postgresql的更多相关文章

  1. msvc2013编译qt5.6源码

    1.回顾 说起到qt的编译,真是领人痛心啊,不仅编译选项繁多,而且编译时间比较久,总是能使想编译qt源码的人望而却步,呵呵...我就是其中一个,不知道从什么时候开始就想着把qt的源码编译一下,也尝试过 ...

  2. 麒麟系统开发笔记(三):从Qt源码编译安装之编译安装Qt5.12

    前言   上一篇,是使用Qt提供的安装包安装的,有些场景需要使用到从源码编译的Qt,所以本篇如何在银河麒麟系统V4上编译Qt5.12源码.   银河麒麟V4版本   系统版本:   Qt源码下载    ...

  3. Win7下静态编译QT5.12源码

    官方参考文档:https://doc.qt.io/qt-5/build-sources.html CSDN博客:https://blog.csdn.net/GG_SiMiDa/article/deta ...

  4. 查看和调试Qt源码(动态编译的QT也可进入源码)good

    简述 在调试程序的时候,有时需要调试进入 Qt 源码,这不仅有利于我们了解内部实现机制,而且对于解决一些隐蔽性问题很有帮助. 都知道 F11 是“单步进入”,可是在调试的过程中,按下 F11 却无法进 ...

  5. 使用VS2005安装和编译QT4.53源码

    学习Qt,当然是QT4好.可是装了4.86以后,网上下载的书中的例子大多无法直接用VS执行(个人不喜欢用QT Creator),即打开pro转换的时候出错(我也懒的研究为什么出错了).看了一下发布时间 ...

  6. Qt源码编译

    Qt源码编译 eryar@163.com Key words. Qt, 源码编译 1.Introduction 随着Qt版本升级,源码编译出来的库体积越来越大.如果只是用Qt来做GUI,Qt提供的预编 ...

  7. Windows,linux下编译qt源码(比较简单)

    一.linux下静态编译qt源码 1.取到qt源码并解压到文件夹 2.cd到qt目录下 3.使用configure生成makefile ./configure–prefix /opt/qtstatic ...

  8. 查看和调试Qt源码

    简述 在调试程序的时候,有时需要调试进入 Qt 源码,这不仅有利于我们了解内部实现机制,而且对于解决一些隐蔽性问题很有帮助. 都知道 F11 是“单步进入”,可是在调试的过程中,按下 F11 却无法进 ...

  9. vs下 qt源码调试

    1.下载qt源码,我下载的是4.7.1版本 2.vs安装qt插件qt-add-in 3.进入qt根目录,打开configure文件,找到 QT_DEFAULT_BUILD_PARTS="li ...

随机推荐

  1. ie8遇到的那些事

    IE一直是我们津津乐道的浏览器,他的奇葩想必各位在开发之路上都不断的遇到了,其恶心程度就不必说了,我们公司主要是IE的浏览器,这次我就把我遇到的不兼容问题列举下来,欢迎大家补充.此举只发表IE8以上的 ...

  2. 装B命令行,常用Windows命令

    winver检查Windows版本 dxdiag检查DirectX信息 gpedit.msc 组策略   regedit.exe 注册表 Msconfig.exe 系统配置实用程序  lusrmgr. ...

  3. 汽车行业解决方案_K2助力车企实现费控/生产“端到端流程”

    如今汽车行业正面对一轮全球范围内新变革周期,这种“变革”一方面来源于在新能源技术.人工智能.信息技术.物联网技术等高新科技地猛烈敲击,另一方面源于全球的经济政策变幻莫测,贸易保护时代地到来,车企深陷发 ...

  4. 前端面试题总结(js、html、小程序、React、ES6、Vue、算法、全栈热门视频资源)

    写在前面 参考答案及资源在看云平台发布,如果大家想领取资源以及查看答案,可直接前去购买.一次购买永久可看,文档长期更新!有什么意见与建议欢迎您及时联系作者或留言回复! 文档描述 本文是关注微信小程序的 ...

  5. redisi应用--布隆过滤器

    但是如果我们想知道某一个值是不是已经在 HyperLogLog 结构里面了,它就无能为力了,它只提供了 pfadd 和 pfcount 方法,没有提供 pfcontains 这种方法.

  6. redis应用-分布式锁

    一个操作要修改用户的状态,修改状态需要先读出用户的状态,在内存里进行修改,改完了再存回去.如果这样的操作同时进行了,就会出现并发问题,因为读取和保存状态这两个操作不是原子的. set lock:cod ...

  7. COM/DCOM简述

    这些组件对象可以互相通讯与交互,而与它们的语言.分布及原始平台无关.COM规程包括一套标准API.一个标准的接口集以及COM用于支持分布式计算的网络协议.而DCOM模型则是一套用于分布式环境中的COM ...

  8. 关于ijkplayer下载的demo不能运行,这是因为FFmpeg

    前提是你在Mac上已经配置了 homebrew 包管理工具 关于ijkPlayer的demo和framework的使用,也许当直接下载下来不能使用,这时候你需要再你下载的当前目录下运行,你看下自己的目 ...

  9. Windows下Caffe实现图像分类

    前言:最近参加百度点石大赛,完成商家招牌的分类和检测,把实验过程简单记录下来,具体步骤如下. 环境配置:windows下的visual studio2013和caffe(cpu版本)环境搭建请看我另一 ...

  10. lvs用户空间命令ipvsadm

    ipvs工作在内核空间,而ipvsadm工作在用户空间,是负责管理集群服务编写规则的命令行工具 ipvsadm需要手动安装. $ yum -y install ipvsadm ipvsadm管理命令 ...