银河麒麟(Kylin) - V10 GFB高级服务器操作系统ARM64 QT-5.12.10-UnixOdbc-编译QODBC的libqsqlodbc.so【MYSQL数据库】

银河麒麟(Kylin) - V10 GFB高级服务器操作系统ARM64 QT-5.12.10-UnixOdbc-编译QODBC的libqsqlodbc.so【MYSQL数据库】

原因

项目需求在QT-5.12.10版本支持QODBC,需要连接MYSQL数据库,QTdemo验证ODBC连接MySQL数据库成功

在这里插入图片描述

测试环境

测试服务器配置

型号:L21-2041K测试板
CPU:Hi1616 (2.4GHz)
内存:64G
硬盘:512G SSD
系统:Kylin-Server-V10-GFB-Release-030.1.1
平台架构:ARM

准备工作

  1. 银河麒麟V10操作系统
  2. QT - 5.12.10版本
  3. MySQL - 8.0.28版本
  4. UnixOdbc驱动
  5. QTdemo验证

编译

编译QT - 5.12.10

已安装 QT - 5.12.10 跳过此步骤

  1. 去QT官网下载QT 5.12.10 源码

  2. 确保系统的gcc,g++, python, perl等符合Qt安装要求,具体请参见Qt源码内的README文档

  3. 编译安装QT

  • 进入qt-everywhere-src-5.12.10 目录执行以下命令:
./configure -prefix /opt/qt5.12.10 -qt-xcb -nomake tests -nomake examples       
make -j64  #-j64为编译时多核优化,视物理机而定
make install  #然后执行安装

编译中途报错缺少库依赖,自行安装缺少的库。

联网使用yum命令安装OpenGL
yum install mesa-libGLU-devel-9.0.1-1.ky10.aarch64
yum install mesa-libGLU-9.0.1-1.ky10.aarch64
yum install mesa-libGL-20.1.4-1.p01.ky10.aarch64
安装gperf依赖以及安装包
yum install gperftools-devel-2.8-1.ky10.aarch64
yum install gperf-help-3.1-7.ky10.noarch
yum install gperftools-2.8-1.ky10.aarch64
yum install gperf-3.1-7.ky10.aarch64

如果版本过低会自动匹配下载更新版本

如果安装xcb完成还出现这个问题提示是xcb没有,我发现其实并不是这个问题,是相关依赖没有安装造成的,就是xcb所有安装包都安装,还是会报这个问题。

解决办法:

yum install libxklavier-5.4-18.ky10.aarch64
yum install libxkbcommon-devel-0.8.4-3.ky10.aarch64
yum install libxkbfile-1.1.0-2.ky10.aarch64
yum install libxkbcommon-0.8.4-3.ky10.aarch64
yum install libxkbcommon-x11-devel-0.8.4-3.ky10.aarch64
yum install libxkbcommon-x11-0.8.4-3.ky10.aarch64



  1. 安装完成

在这里插入图片描述

  1. 安装MySQL
sudo yum install mysql-server

yum软件管理器会自动MySQL相关依赖如图:

在这里插入图片描述
MySQL全部相关依赖如图:

在这里插入图片描述

安装完成

在这里插入图片描述
首次安装没有密码,用户名:root

  1. 安装UnixOdbc
sudo yum install unixODBC-devel.aarch64

在这里插入图片描述

在这里插入图片描述
如果需要unixODBC-2.3.12 下载源码编译

  • 解压unixodbc文件:
sudo tar -xvf unixODBC-2.3.12.tar.gz
  • 进入unixODBC-2.3.12目录执行以下命令:
sudo ./configure   #负责在使用的系统上准备好软件的构建环境
make -j64  #-j64为编译时多核优化,视物理机而定
make install  #然后执行安装
  1. 编译mysql-connector-odbc-8.0.26
  • 解压 mysql-connector-odbc-8.0.26-src 文件:
sudo tar -xvf mysql-connector-odbc-8.0.26-src.tar.gz

安装必要的编译工具

sudo yum install -y \
    cmake \
    make \
    gcc-c++ \
    unixODBC-devel \
    mysql-devel \
    openssl-devel \
    libtool \
    autoconf \
    automake

在这里插入图片描述

  • 创建独立的构建目录
mkdir build
cd build
  • 编译 mysql-connector-odbc-8.0.26
cmake .. \
>     -DCMAKE_INSTALL_PREFIX=/usr/local/mysql-connector-odbc \
>     -DWITH_UNIXODBC=1 \
>     -DCMAKE_BUILD_TYPE=Release

在这里插入图片描述

sudo make -j 60  #-j60为编译时多核优化,视物理机而定

在这里插入图片描述

在这里插入图片描述

sudo make install   #然后执行安装

在这里插入图片描述
默认安装路径为 /usr/local/,驱动文件为 libmyodbc8w.so或libmyodbc8S.so

在这里插入图片描述

  1. 配置ODBC
  • 注册驱动到 odbcinst.ini
[MySQL]
Description=ODBC for MySQL
Driver=/usr/local/mysql-connector-odbc/lib/libmyodbc8w.so
Setup=/usr/local/mysql-connector-odbc/lib/libmyodbc8S.so
Driver64=/usr/local/mysql-connector-odbc/lib/libmyodbc8w.so
Setup64=/usr/local/mysql-connector-odbc/lib/libmyodbc8S.so
FileUsage=1
UsageCount=3

在这里插入图片描述

  • 验证驱动注册
sudo odbcinst -q -d  # 应显示 "MySQL"

在这里插入图片描述

  • 配置数据源(DSN)
[MyDB]
Description = MySQL Test Database
Driver = MySQL
Server = localhost
Database = mysql
Port = 3306
User = root
Socket = /var/lib/mysql/mysql.sock
Option = 3

在这里插入图片描述

  • 测试连接
sudo isql -v MyDB  # 成功应返回 "Connected!"

在这里插入图片描述

  • 连接成功
  1. 编译QT5.12.8-ODBC
  • 修改qsqldriverbase.pri
sudo vim qt-everywhere-src-5.12.10/qtbase/src/plugins/sqldrivers/qsqldriverbase.pri
  • 修改include内容,将qtsqldrivers-config.pri替换为configure.pri。

在这里插入图片描述

  • 修改odbc.pro文件
  • 修改QT源码目录odbc.pro文件,注释QMAKE_USE += odbc。

在这里插入图片描述

  • 进入qt-everywhere-src-5.12.8/qtbase/src/plugins/sqldrivers/odbc

如果qmake已添加到环境变量,可以直接使用qmake,如果没有添加,可使用/opt/qt5.12.10/bin/qmake

sudo /opt/qt5.12.10/bin/qmake    #生成 Makefile 文件
make -j64  #-j64为编译时多核优化,视物理机而定

在这里插入图片描述

如果编译中出现报错

  • 原因:未正确链接 ODBC 库。

  • 解决:

# 显式指定库全路径(示例):
qmake -- "LIBS += -L/usr/local/lib -lodbc"

LIBS:UnixOdbc安装路径

或者把路径写进odbc.pro

在这里插入图片描述

cd /home/zhang/qt-everywhere-src-5.12.8/qtbase/src/plugins/sqldrivers  # 进入驱动目录
make distclean    # 清理旧配置
sudo /opt/qt5.12.10/bin/qmake    #生成 Makefile 文件
make -j64  #-j64为编译时多核优化,视物理机而定

在这里插入图片描述

  • 生成libqsqlodbc.so

在这里插入图片描述

  • 拷贝libqsqlodbc.so

拷贝libqsqlodbc.so到/opt/qt5.12.10/plugins/sqldrivers/目录下,该目录是QT安装目录,至此QODBC的动态库编译完成。

QT验证

在这里插入图片描述

完成

编译成功:Kylin-Server-V10-GFB-Release-030.1.1-libqsqlodbc.so

数据库驱动源码:mysql-connector-odbc-8.0.26-src

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

alin、m

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值