Qt5.5 connection firebird on Linux Centos7.2 or windows
windows c++ 项目移植到 linux,原项目需要连接 Firebird数据库。
google 后知道 linux qt connection Firebird 有两种方法:
- 1.ibpp connection firebird;
- 2.QSqlDatabase: QIBASE driver connection Firebird;
Linux 环境编译libqsqlibase.so
- 安装Centos7.2 桌面、安装qt5.5 ;
- Install GCC Compiler on CentOS7
sudo yum group install "Development Tools"
sudo yum install man-pages
gcc --version
报:QSqlDatabase: QIBASE driver not loaded 需要自己编译 QIBASE driver 生成libqsqlibase.so
- 参考下面方法
https://forum.qt.io/search?term=libqsqlibase.so&in=posts&matchWords=all&sortBy=relevance&sortDirection=desc&showAs=posts
- 毕竟环境和网上不完全一样,可能会遇到一些问题。
[root@Desk001 ~]# find / -name ibase
/opt/Qt5.5.1/5.5/Src/qtbase/src/plugins/sqldrivers/ibase
/opt/Qt5.5.1/5.5/Src/qtbase/src/sql/drivers/ibase
/opt/Qt5.5.1/5.5/Src/qtbase/config.tests/unix/ibase
[root@Desk001 ~]# cd /opt/Qt5.5.1/5.5/Src/qtbase/src/plugins/sqldrivers/ibase
[root@Desk001 ibase]# /opt/Qt5.5.1/5.5/gcc_64/bin/qmake ibase.pro
[root@Desk001 ibase]# ll
total 60
-rwxrwxr-x. 1 root root 29 Oct 13 2015 ibase.json
-rwxrwxr-x. 1 root root 187 Dec 16 22:50 ibase.pro
-rwxrwxr-x. 1 root root 2254 Oct 13 2015 main.cpp
-rw-r--r--. 1 root root 46701 Dec 16 23:09 Makefile
[root@Desk001 ibase]# chmod 775 Makefile
[root@Desk001 ibase]# make
报错
../../../sql/drivers/ibase/qsql_ibase_p.h:50:19: fatal error: ibase.h: No such file or directory
#include <ibase.h>
报错 /usr/bin/ld: cannot find -lgds
[root@Desk001 ibase]# ln -s /usr/lib64/libfbclient.so.2.5.9 /usr/lib64/libgds.so
- 缺失头文件官网下载;
- ibpp官网地址
4.make make install、
[root@Desk001 ibase]# cd /opt/Qt5.5.1/5.5/Src/qtbase/src/plugins/sqldrivers/ibase
[root@Desk001 ibase]# ll
total 64
-rwxrwxr-x. 1 root root 29 Oct 13 2015 ibase.json
-rwxrwxr-x. 1 root root 187 Dec 16 22:50 ibase.pro
drwxr-xr-x. 5 root root 4096 Dec 16 23:33 ibpp
-rwxrwxr-x. 1 root root 2254 Oct 13 2015 main.cpp
-rwxrwxr-x. 1 root root 46701 Dec 16 23:09 Makefile
[root@Desk001 ibase]# make
......
[root@Desk001 ibase]# make install
install -m 755 -p ../../../../plugins/sqldrivers/libqsqlibase.so /opt/Qt5.5.1/5.5/gcc_64/plugins/sqldrivers/libqsqlibase.so
strip --strip-unneeded /opt/Qt5.5.1/5.5/gcc_64/plugins/sqldrivers/libqsqlibase.so
install -m 644 -p /opt/Qt5.5.1/5.5/Src/qtbase/lib/cmake/Qt5Sql/Qt5Sql_QIBaseDriverPlugin.cmake /opt/Qt5.5.1/5.5/gcc_64/lib/cmake/Qt5S
ql/
[root@Desk001 apps]# cd /opt/Qt5.5.1/5.5/gcc_64/plugins/sqldrivers
[root@Desk001 sqldrivers]# ll
total 1076
-rwxr-xr-x. 1 root root 102168 Dec 16 23:57 libqsqlibase.so
-rwxr-xr-x. 1 root root 838064 Oct 13 2015 libqsqlite.so
-rwxr-xr-x. 1 root root 75504 Oct 13 2015 libqsqlmysql.so
-rwxr-xr-x. 1 root root 79248 Oct 13 2015 libqsqlpsql.so
Windos 环境编译 ibase
参考
https://forum.qt.io/topic/26620/how-to-build-plugin-qibase-for-firebird-qt-5-0-2/4
- 安装qt5.5、配置qt环境变量,安装FireBird2.5(32位)(软件版本按自己需求选)。
- 修改 F:\ProgramFiles\qt5.5\5.5\Src\qtbase\src\plugins\sqldrivers\ibase\ibase.pro
添加FireBird数据库include
TARGET = qsqlibase
SOURCES = main.cpp
OTHER_FILES += ibase.json
INCLUDEPATH += C:/Firebird/Firebird_2_5/include
LIBS += C:/Firebird/Firebird_2_5/lib/fbclient_ms.lib
include(../../../sql/drivers/ibase/qsql_ibase.pri)
PLUGIN_CLASS_NAME = QIBaseDriverPlugin
include(../qsqldriverbase.pri)
- 编译
qmake ibase.pro
mingw32-make(有报头文件 ibase.h 找不到)
修改 F:\ProgramFiles\qt5.5\5.5\Src\qtbase\src\sql\drivers\ibase\qsql_ibase_p.h
添加
#include <ibase.h>
修改F:\ProgramFiles\qt5.5\5.5\Src\qtbase\src\plugins\sqldrivers\ibase\main.cpp
添加
#include "../../../sql/drivers/ibase/qsql_ibase_p.h"
然后重新编译
mingw32-make
Win环境 使用FireBird
a.本机安装数据库服务情况下直接使用;
b.本机不安装数据库服务情况下,可以访问远程数据库(网络模式);
- firebird官网下载 32-bit Classic, Superclassic & Superserver,安装。
- 安装完成后把 bin目录下的fbclient.dll 放到工程编译后生成的exe同级目录
c.本机不启用数据库服务情况下,可以访问本机数据库文件(嵌入式模式)。 - firebird官网下载 32-bit Embedded。
- 解压后把fbembed.dll改成fbclient.dll 放到工程编译后生成的exe同级目录
- 参考
Client and server combined: Firebird Embedded Server 嵌入式文档
Qt5.5 connection firebird on Linux Centos7.2 or windows的更多相关文章
- Linux CentOS7 安装 Qt 5.9.2
Linux CentOS7 安装 Qt 5.9.2 参考链接 http://doc.qt.io/qt-5/linux.html sudo yum groupinstall "C Develo ...
- Linux Centos7.x 安装部署Mysql5.7几种方式的操作手册
简述 Linux Centos7.x 操作系统版本下针对Mysql的安装和使用多少跟之前的Centos6之前版本有所不同的,下面介绍下在centos7.x环境里安装mysql5.7的几种方法: 一. ...
- Linux CentOS7部署ASP.NET Core应用程序,并配置Nginx反向代理服务器
前言: 本篇文章主要讲解的是如何在Linux CentOS7操作系统搭建.NET Core运行环境并发布ASP.NET Core应用程序,以及配置Nginx反向代理服务器.因为公司的项目一直都是托管在 ...
- gnome/KDE安装,gnome出现问题,重新安装nvdia驱动, Linux(CentOS7) NVIDIA GeForece GTX 745 显卡驱动
新安装显示gtx745驱动NVIDIA-Linux-x86_64-346.59.run, yum groupremove kde-desktop yum groupinstall "Desk ...
- Linux CentOs7 下安装 redis
Linux CentOs7 下安装 redis 请将以下命令放入linux命令行中运行 如果安装过程前没有安装GCC请先安装 命令如下 $ yum install gcc-c++ $ wget ht ...
- Linux centos7环境下安装JDK的步骤详解
Linux centos7环境下安装JDK的步骤详解 测试root用户下JAVA版本 输入命令: java –version 1.先到Oracle官网里下载好jdk,网址如下: http://ww ...
- Linux centos7环境下安装MySQL的步骤详解
Linux centos7环境下安装MySQL的步骤详解 安装MySQL mysql 有两个跟windows不同的地方 1).my.ini 保存到/etc/my.ini 2).用户权限,单独用户执行 ...
- .NET Core跨平台:.NET Core项目部署到linux(Centos7)
1.开篇说明 a 上篇博客简单的说明了一下 使用.NET Core开发的一个总结,地址是:(http://www.cnblogs.com/hanyinglong/p/6442148.html),那么这 ...
- Linux centos7环境下安装Nginx
Linux centos7环境下安装Nginx的步骤详解 1. 首先到Nginx官网下载Nginx安装包 http://nginx.org/download/nginx-1.5.9.tar.gz ...
随机推荐
- D - Complete Tripartite
三分图染色 链接:https://codeforces.com/contest/1228/problem/D 三分图染色步骤:First 首先找一个点1作为集合A中的点,再找到与1相连的一个点设为2, ...
- vue2.x学习笔记(二十)
接着前面的内容:https://www.cnblogs.com/yanggb/p/12631279.html. 循环引用 递归组件 组件是可以在它们自己的模板中调用自身的,不过它们只能通过[name] ...
- 图解AVL树
1:AVL树简介 二叉搜索树在一般情况下其搜索的时间复杂度为O(logn),但某些特殊情况下会退化为链表,导致树的高度变大且搜索的时间复杂度变为O(n),发挥不出树这种数据结构的优势,因此平衡二叉树便 ...
- hadoop 伪分布配置
配置 Hadoop 伪分布式 任务配置说明: VMware 15 Centos 6.5 java -jdk 1.8 hadoop-2.6.0-cdh5.14.0.tar.gz 第一步 自行安装虚拟机 ...
- C# 基础知识系列- 13 常见类库介绍(二)日期时间类
0. 前言 上一篇内容介绍了Console类和Math类,这篇内容着重介绍一下C#中时间日期的处理方式. 上一篇勘误: 上一篇中关于静态类没有构造函数,这一表述有误.正确的说法是C#中静态类不包含常规 ...
- 数值计算方法实验之Hermite 多项式插值 (Python 代码)
一.实验目的 在已知f(x),x∈[a,b]的表达式,但函数值不便计算,或不知f(x),x∈[a,b]而又需要给出其在[a,b]上的值时,按插值原则f(xi)= yi(i= 0,1…….,n)求出简单 ...
- Java 反射 -- 获取泛型类型
先写一个类: public class Demo03 { public void test01(Map<String, User> map, List<User> list) ...
- 借助leetcode题目来了解BFS和DFS
广度优先和深度优先搜索 前言 看着这两个搜索的前提的是读者具备图这一数据结构的基本知识,这些可以直接百度一波就了解了.图也像树一样,遍历具有很多的学问在里面,下面我将借用leetcode的题目讲解一下 ...
- WebApi参数检查验证FluentValidation的使用方法
右键打开NuGet程序包管理,进入浏览,搜索 FluentValidation,点击下载 在Model文件夹添加一个Person类进行校验 校验前,using需要引入相应的命名空间方可使用,Abstr ...
- 3.k均值的算法
一.课堂练习 # 课堂练习 from sklearn.datasets import load_iris # 导入鸢尾花数据 iris=load_iris() iris iris.keys() dat ...