lib-odb mysql_libodb编译过程

本文介绍了在Windows上使用mingw编译libodb、libodb-qt、libodb-mssql、libodb-oracle和libodb-MysqL的详细步骤,包括环境配置、编译选项和解决遇到的问题。特别提到了MysqL库编译时的undefined reference问题及其解决方案。
摘要由CSDN通过智能技术生成

使用环境: 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

windows中使用mingw编译需使用类unix环境,odb-2.4.0-i686-windows中自带了msys,且集成了mingw4.9,但官网中说明需与应用程序使用相同的编译器对odb进行编译,不想对odb-2.4.0-i686-windows中的mingw环境进行修改,所以重新下载了msys1.0.11版,同时将qt5.7.0中的mingw目录加入系统的环境变量中,使msys可以找到gcc环境

odb

windows版的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

//libclntsh.a需放到/d/Oracle/OCI/lib/msvc目录中

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

make

libodb-MysqL编译

需用到MysqL sdk开发包,正常的安装的MysqL默认是不带开发包的,如仅需要开发包而不要数据库,可下载MysqLconnetor获得

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例子时会报错,原因参见文章http://blog.csdn.net/zuishikonghuan/article/details/51918076

总结

以上是编程之家为你收集整理的libodb编译过程全部内容,希望文章能够帮你解决libodb编译过程所遇到的程序开发问题。

如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。

如您喜欢交流学习经验,点击链接加入交流1群:1065694478(已满)交流2群:163560250

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值