前言
本文介绍windows平台下libodb库的编译及使用。
文末提供libodb-2.4.0编译好的msvc2019_64版本,可直接跳转自取
ODB库学习相关
【开源库学习】libodb库学习(一)
【开源库学习】libodb库学习(二)
【开源库学习】libodb库学习(三)
【开源库学习】libodb库学习(四)
【开源库学习】libodb库学习(五)
【开源库学习】libodb库学习(六)
【开源库学习】libodb库学习(七)
libodb库
libodb 是一个开源、跨平台、跨数据库的对象关系映射(ORM)系统,可以持久化C++对象到关系数据库,而不必处理表、列或者SQL,无需手动编写任何映射代码。ODB支持MySQL
,SQLite
,PostgreSQL
,Oracle
和微软SQL Server
关系数据库以及C ++98/03和C ++11语言标准。它还配备了用于Boost和Qt可选的配置文件,可以无缝地使用这些库持久化C++类的值类型、容器和智能指针。
编译
1.下载源码
libodb库下载地址:https://www.codesynthesis.com/products/odb/download.xhtml
根据需要下载,如在windows平台下,使用mssql数据库和qt框架,下载以下文件:
odb-2.4.0-i686-windows
libodb-2.4.0
libodb-mssql-2.4.0
libodb-qt-2.4.0
(需要已安装qt,编译会用到)
2.安装ODB
- 解压
odb-2.4.0-i686-windows
- 添加
bin
目录到环境变量 - 命令行输入
odb --version
看是否安装成功
3.编译libodb
- 使用visual studio 2019打开
libodb-2.4.0
文件夹下libodb-vc12.sln
文件,弹出的对话框点击确定。 - 在配置管理器里选择要配置的类型
Debug/Release
、Win32/x64
。 Ctrl+B
编译。- 生成库文件在
libodb-2.4.0/lib64
目录下(以Release x64
为例)。
4.编译libodb-mssql
- 将
libodb-2.4.0
文件夹下obd
和lib64
文件夹拷贝至libodb-mssql-2.4.0
文件夹。(未拷贝会生成失败报错) - 使用visual studio 2019打开
libodb-mssql-2.4.0
文件夹下libodb-mssql-vc12.sln
文件,弹出的对话框点击确定。(未升级到目标框架会生成失败报错) - 在配置管理器里选择要配置的类型
Debug/Release
、Win32/x64
。 - 在
项目/属性/VC++目录/库目录
中添加odb.lib
所在的目录(编译libodb时的库生成目录,步骤一已拷贝至libodb-mssql-2.4.0
文件夹下lib64
目录)。(未添加正确库目录会生成失败报错) Ctrl+B
编译。- 生成库文件在
libodb-mssql-2.4.0/lib64
目录下(以Release x64
为例)。
5.编译libodb-qt
- 将
libodb-mssql-2.4.0
文件夹下obd
和lib64
文件夹拷贝至libodb-qt-2.4.0
文件夹。(未拷贝会生成失败报错) - 使用visual studio 2019打开
libodb-qt-2.4.0
文件夹下libodb-qt-vc12.sln
文件,弹出的对话框点击确定。(未升级到目标框架会生成失败报错) - 在配置管理器里选择要配置的类型
Debug/Release
、Win32/x64
。 - 在
项目/属性/VC++目录/库目录
中添加odb.lib
,odb-mssql.lib
所在的目录(编译libodb-mssql时的库生成目录,步骤一已拷贝至libodb-qt-2.4.0
文件夹下lib64
目录),添加Qt5Core.lib
所在的目录(在qt的安装目录下)。(未添加正确库目录会生成失败报错) Ctrl+B
编译。- 生成库文件在
libodb-qt-2.4.0/lib64
目录下(以Release x64
为例)。
使用
将
libodb-mssql-2.4.0
文件夹下obd
和lib64
文件夹拷贝至libodb-qt-2.4.0
文件夹。(未拷贝会生成失败报错)使用visual studio 2019打开
odb-examples-2.4.0
文件夹下examples-mssql-vc12.sln
文件,弹出的对话框点击确定。(未升级到目标框架会生成失败报错)在配置管理器里选择要配置的类型
Debug/Release
、Win32/x64
。在
项目/属性/VC++目录/库目录
中添加odb.lib
,odb-mssql.lib
所在的目录(编译libodb-mssql时的库生成目录,步骤一已拷贝至libodb-examples-2.4.0
文件夹下lib64
目录)(未添加正确库目录会生成失败报错)
在
项目/属性/VC++目录/包含目录
中添加odb
文件夹所在的目录(步骤一已拷贝至libodb-mssql-2.4.0
文件夹下,故此处为libodb-examples-2.4.0
目录),包含libodb-examples/c++11
目录 (未添加正确包含目录会生成失败报错)
使用ODB编译器生成
employee-odb.hxx,employee-odb.cxx,employee-odb.ixx
文件。方法为:在odb-examples-2.4.0\c++11
文件夹(employee.hxx所在文件夹)下打开命令行工具,输入odb -d mssql -q -s --std c++11 employee.hxx
,无报错且在该目录下生成文件则为成功,否则根据命令行提示查找原因。
obd命令行使用详见:https://www.codesynthesis.com/products/odb/doc/odb.xhtml
7. Ctrl+B
编译
8. odb-examples-2.4.0\c++11\x64\Release
目录下生成可执行文件driver.exe
,将编译libodb和libobd-mssql时生成的动态库文件(bin目录下odb-2.4-vc12.dll
和odb-mssql-2.4-vc12.dll
)复制到该目录下
9. 在odb-examples-2.4.0\c++11\x64\Release
目录下打开命令行,执行driver.exe -U <你的用户名> -P <你的密码> -d <数据库名>
10. 如果有错误产生,可能因为指定数据库里没有对应表格
12. 打开数据库,运行编译生成的SQL脚本employee.sql
,生成数据库表
14. 再次在命令行中执行driver.exe -U <你的用户名> -P <你的密码> -d <数据库名>
,返回运行结果
ODB库学习相关
【开源库学习】libodb库学习(一)
【开源库学习】libodb库学习(二)
【开源库学习】libodb库学习(三)
【开源库学习】libodb库学习(四)
【开源库学习】libodb库学习(五)
【开源库学习】libodb库学习(六)
【开源库学习】libodb库学习(七)
下载
libodb_vs2019_x64_release
libodb-mssql_vs2019_x64_release
libodb-qt_vs2019_x64_release