lib odb mysql libodb編譯過程

2021-10-18 20:08:38 字數 1612 閱讀 8036

使用環境: windosw,odb2.4.0,qt5.7.0,mingw5.3.0,oracle11g

1.odb-2.4.0-i686-windows.zip

2.libodb-2.4.0.zip

3.libodb-qt-2.4.0.zip

4.libodb-mssql-2.4.0.zip

5.libodb-oracle-2.4.0.zip

6.libodb-mysql-2.4.0.zip

odbwindows版的odb是編譯好的,無需自己編譯,將odb-2.4.0-i686-windows解壓即可使用

libodb編譯

該包編譯沒有什麼問題,msys環境設定好後,進入相應目錄,按照

./configure

make

make install

執行即可,也可不執行make install,編譯完成後到相應目錄找到庫檔案即可

libodb-qt編譯

編譯qt包時需用到qt相關標頭檔案,且qt5.7使用了c++11特性,需啟用編譯器c++11支援,所以要先使用export設定編譯引數,執行configure時需使用–with-libodb引數指定libodb位置,執行順序如下:

export cxxflags=」-i/d/qt/qt5.7.0/5.7/mingw53_32/include -std=c++11」

./configure –with-libodb=/d/tool/odb/libodb

make

libodb-mssql編譯

此包無特殊要求,按照標準順序執行即可

./configure –with-libodb=/d/tool/odb/libodb-2.4.0

make

libodb-oracle編譯

編譯oracle庫時需指定oracle頭檔案目錄和lib庫檔案目錄,11g的庫檔案直接改名後不能使用,需先根據dll生成庫檔案:

gendef oci.dll

dlltool -d oci.dll -d oci.def -l liboci.a

configure檔案中使用的檔名為clntsh,所以需將liboci.a改名為libclntsh.a,然後按以下順序執行

export cxxflags=/d/oracle/oci/include

export ldflags=/d/oracle/oci/lib/msvc

需放到/d/oracle/oci/lib/msvc目錄中

./configure –with-libodb=/d/tool/odb/libodb-2.4.0

make

libodb-mysql編譯

lib庫需參照以上編譯oracle時的方式進行處理,最後需改名為libmysqlclient_r.a

需注意的是,我使用的版本,lib庫處理完成後,編譯時仍報錯:undefined reference mysql_thread_init@0,此函式在動態庫中確實不存在,可通過將.def檔案中定義的匯出函式mysql_thread_init改名為mysql_thread_init@0,並重新生成.a lib檔案的方式解決

mysql庫編譯完執行example中的hello例子時會報錯,原因參見文章

總結

Tornado編譯vxworks本質及過程

tornado編譯vxworks本質及過程 本文 tornado編譯實際上是執行工程底下的makefile,而使用的編譯鏈是gnu的gcc。經測試,在dos命令列中直接執行make是可以完成編譯的 將tornado中make.exe的路徑新增到環境變數中,如c tornado2.2 host x86...

LINUX學習筆記之64位下編譯apr過程

configure error cannot run bin sh config config.sub rpm qa grep libtool libtool ltdl 2.2.6 15.5.el6.x86 64 libtool ltdl 已安裝了 libtool libtool ltdl deve...

在Ubuntu上進行C語言開發,程式編譯過程

新建.c型別的檔案並開啟 然後儲存退出當前程式。用gcc編譯該程式,如果無報錯則會生成可執行檔案 panda panda gcc o a a.c用ls命令檢視,生成了乙個名為a的可執行檔案,執行該檔案 編譯命令格式 gcc option 生成的檔名 源檔名 g option 生成的檔名 源檔名 備註...