中标麒麟QT+ODBC+人大金仓开发环境配置

一、吐槽     

       最近由于项目的背景,需要在中标麒麟的系统上搭建QT通过ODBC访问人大金仓数据库的开发环境,平常用惯了Ubuntu手到擒来的特性,实在有点不适应。

在找了大半天也没有找到麒麟提供的软件源的情况下,我发现它有可能基于REHL6.4深度定制,就索性给它换了一套由163提供的CentOS源,结果倒是发现很多待

安装的软件包依赖都不是很好,真是醉了。实在没办法只能源码编译走起  : ( 

二、安装人大金仓     

      就整体的思路来说,安装人大金仓的过程分为两部分:一、选择安装特性、解压缩文件、配置文件和环境变量,二、安装驱动、安装并启动服务。在上述安装

步骤完成的基础上,就可以创建一个数据库实例,完成初始化活动。

      我安装过程中的问题出在执行 Root.sh 的过程中。(前面的步骤可以按照《金仓数据库管理系统KingbaseES V7 快速安装指南》走,一般来说问题不大)

从出错的信息出发去查找,shell文件,可以发现是对应的环境变量没有赋值,导致出现路径中出现这个符号 $,以及找不到目录、文件和用户名。解决问题的方法

就是在保存当前用户的环境变量的文件中去添加这些变量,然后修改 Root.sh 保证 shell 文件能得到正确的值。

错误如下:

        [root@localhost Install]# sh Root.sh

        Root.sh:行20: $/Install/root.log: 没有那个文件或目录

        Root.sh:行21: $/Install/root.log: 没有那个文件或目录

        Root.sh:行22: $/Install/root.log: 没有那个文件或目录

        cp: 无法获取"$/Uninstall/rmln.sh" 的文件状态(stat): 没有那个文件或目录

        Root.sh: 第 247 行:cd: $/Install/startup-desktop/icons: 没有那个文件或目录

        find: `./hicolor‘: 没有那个文件或目录 

        tee: $/Install/root.log: 没有那个文件或目录

 

       id: $: no such user

       chown: 无效的用户: "$."

       chmod: 无法访问"$/Install/root.log": 没有那个文件或目录

       Complete.

       在解决这个问题之后,还有可能遇到动态链接库找不到的问题,按照它的需求,对一些已存在的的库,做一个软链接即可。

三、配置ODBC数据源

       如何配置ODBC数据源可以参照《KingbaseES系统安装》(官方提供的手册)。但是,在配置完 odbc.ini 与 odbcinst.ini  两个

文件之后,仍需要配置环境变量,ODBCINI 和 ODBCSYSINI 来指定上述两个配置文件的位置。否则可能出现如下错误:

        [zzuie@localhost Desktop]$ isql -v kingbase

        [08001][unixODBC]Could not connect to the server

        [08001][unixODBC]Could not connect to server;

        [ISQL]ERROR: Could not SQLConnect

四、编译安装 QT 5.3.2

       我使用的中标麒麟版本中,GCC的版本是 4.4.7 而且不包含 G++功能。要编译安装QT 5.3.2,至少要使用 GCC 4.8.4 且具有G++功能。

可是 GCC4.8.4 已经转移到了 C++ 上,那么问题来了,怎么安装高版本的GCC ?

       GCC 4.8 Release Series Changes, New Features, and Fixes: GCC now uses C++ as its implementation language.

       This means that to build GCC from sources, you will need a C++ compiler that understands C++ 2003.

       https://gcc.gnu.org/gcc-4.8/changes.html

你可以安装一个低版本的GCC  : )

然后你就可以很欢畅地去编译 QT 5.3.2 了

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。