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 ...
随机推荐
- 详解 普通数组 —— Arrays类 与 浅克隆
我们在C语言中,编一些代码量规模比较大的程序,几乎都会用到 "数组" 或 "链表" ,但是,在本人之前的博文中,却对这两个知识点从未提到过,那么,本人将通过这篇 ...
- EF多租户实例:演变为读写分离
前言 我又来写关于多租户的内容了,这个系列真够漫长的. 如无意外这篇随笔是最后一篇了.内容是讲关于如何利用我们的多租户库简单实现读写分离. 分析 对于读写分离,其实有很多种实现方式,但是总体可以分以下 ...
- 算法笔记刷题1(codeup 1934)
准备6月份的拼题甲级中(本来现在这两天就考试了,但是因为疫情的原因延期了) 刚刚开始按算法笔记刷题,今天是探索codeup的第一天. 一开始并没有把多点测试当回事,直到一错再错,心态爆炸... 附上我 ...
- CountDownLatch/CyclicBarrier/Semaphore
CountDownLatch 概念 让一些线程阻塞直到另一些线程完成一系列操作才被唤醒 CountDownLatch主要有两个方法,当一个或多个线程调用await方法时,调用线程就会被阻塞.其它线程调 ...
- sql注入notebook
内容来自: https://ca0y1h.top/ 联合查询注入 使用场景 页面上有显示位 什么是显示位:在一个在一个网站的正常页面,服务端执行SQL语句查询数据库中的数据,客户端将数据展示在页面中, ...
- iconv 参数详解
参数详解: $row [] = iconv('utf-8', 'GB2312//IGNORE', $value['message']); iconv ( string $in_charset , st ...
- 使用IBM Blockchain Platform extension开发你的第一个fabric智能合约
文章目录 安装IBM Blockchain Platform extension for VS Code 创建一个智能合约项目 理解智能合约 打包智能合约 Local Fabric Ops 安装智能合 ...
- material UI中子组件样式修改的几种方案研究
material UI是一个流行的与React配套的前端UI框架,对于开发者而言,熟悉它的样式修改方案是必要的.但目前相关资料并不直观,并且没有总结到一起.如果对相关特性不太清楚,开发者很可能会在 ...
- react 工程起步 安装chrome 开发调试工具 react developer tools 及初建一个react 项目...
1.安装react 开发工具 1.下载 chrome react developer tools 下载地址:https://pan.baidu.com/s/1eSZsXDC 下载好是 ...
- Gartner:2016 Q2全球服务器市场,中国再度成为亮点
对于IT产品供应商来说,Gartner.IDC等第三方分析机构市场调研报告无疑是一次"中考",成绩优异的论功行赏,迎接鲜花和掌声:差强人意,批斗会将是不可避免的,接下来加班加点,力 ...