中標麒麟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  : ), 然后再安裝高版本的GCC。然后然后你就可以很歡暢地去編譯 QT 5.3.2 了

updated 2015/4/20

   上述表達:“要編譯安裝QT 5.3.2,至少要使用 GCC 4.8.4 且具有G++功能”,是錯誤的。其實后來在編譯安裝QT5.3.2過程中,我使用源碼編譯安裝了GCC 4.7.0 ,在此基礎上仍然可以編譯QT5.3.2。QT官方給出的環境如下:

http://doc.qt.io/qt-5/supported-platforms.html,指出:

  Platform                                                            Compiler

     Ubuntu Linux 11.10, X11 (32-bit and 64-bit)         As provided by Ubuntu
     Ubuntu Linux 12.04, X11 (64-bit)                         As provided by Ubuntu
     RedHat 6.5, X11 (64-bit)                                     As provided by Red Hat
     openSUSE 13.1, X11 (64-bit)                               As provided by SUSE

   Ubuntu Release Notes

     Ubuntu 11.10 includes gcc 4.6 as the default compiler. The GCC packages are built from the 4.6-2011.07 Linaro GCC release based on the GCC 4.6.1 release. See ToolChain/CompilerFlags for a summary of compiler defaults which are different from the upstream release.

  Ubuntu 12.04 is distributed with a default toolchain that includes: GCC 4.6.3 (and changes from Linaro GCC 4.6-2012.02), binutils 2.22, eglibc 2.15, andLinaro gdb 7.4-2012.04.

     RedHat Enterprise Linux Desktop(v.6)

     

     Reference:  https://wiki.ubuntu.com/OneiricOcelot/ReleaseNotes#GCC_4.6_Toolchain

        https://wiki.ubuntu.com/PrecisePangolin/ReleaseNotes/UbuntuDesktop
                        https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/6/html-single/6.5_Technical_Notes/index.html#gcc  

                        https://rhn.redhat.com/errata/RHBA-2013-1609.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM