【开源库】libodb库编译及使用

前言

本文介绍windows平台下libodb库的编译及使用。

文末提供libodb-2.4.0编译好的msvc2019_64版本,可直接跳转自取

ODB库学习相关

【开源库学习】libodb库学习(一)
【开源库学习】libodb库学习(二)
【开源库学习】libodb库学习(三)
【开源库学习】libodb库学习(四)
【开源库学习】libodb库学习(五)
【开源库学习】libodb库学习(六)
【开源库学习】libodb库学习(七)

libodb库

libodb 是一个开源、跨平台、跨数据库的对象关系映射(ORM)系统,可以持久化C++对象到关系数据库,而不必处理表、列或者SQL,无需手动编写任何映射代码。ODB支持MySQLSQLitePostgreSQLOracle和微软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

  1. 解压odb-2.4.0-i686-windows
  2. 添加bin目录到环境变量
  3. 命令行输入odb --version看是否安装成功

3.编译libodb

  1. 使用visual studio 2019打开libodb-2.4.0文件夹下libodb-vc12.sln文件,弹出的对话框点击确定。
  2. 在配置管理器里选择要配置的类型Debug/ReleaseWin32/x64
  3. Ctrl+B编译。
  4. 生成库文件在libodb-2.4.0/lib64目录下(以Release x64为例)。

4.编译libodb-mssql

  1. libodb-2.4.0文件夹下obdlib64文件夹拷贝至libodb-mssql-2.4.0文件夹。(未拷贝会生成失败报错)
  2. 使用visual studio 2019打开libodb-mssql-2.4.0文件夹下libodb-mssql-vc12.sln文件,弹出的对话框点击确定。(未升级到目标框架会生成失败报错)
  3. 在配置管理器里选择要配置的类型Debug/ReleaseWin32/x64
  4. 项目/属性/VC++目录/库目录中添加odb.lib所在的目录(编译libodb时的库生成目录,步骤一已拷贝至libodb-mssql-2.4.0文件夹下lib64目录)。(未添加正确库目录会生成失败报错)
  5. Ctrl+B编译。
  6. 生成库文件在libodb-mssql-2.4.0/lib64目录下(以Release x64为例)。

5.编译libodb-qt

  1. libodb-mssql-2.4.0文件夹下obdlib64文件夹拷贝至libodb-qt-2.4.0文件夹。(未拷贝会生成失败报错)
  2. 使用visual studio 2019打开libodb-qt-2.4.0文件夹下libodb-qt-vc12.sln文件,弹出的对话框点击确定。(未升级到目标框架会生成失败报错)
  3. 在配置管理器里选择要配置的类型Debug/ReleaseWin32/x64
  4. 项目/属性/VC++目录/库目录中添加odb.lib,odb-mssql.lib所在的目录(编译libodb-mssql时的库生成目录,步骤一已拷贝至libodb-qt-2.4.0文件夹下lib64目录),添加Qt5Core.lib所在的目录(在qt的安装目录下)。(未添加正确库目录会生成失败报错)
  5. Ctrl+B编译。
  6. 生成库文件在libodb-qt-2.4.0/lib64目录下(以Release x64为例)。

使用

  1. libodb-mssql-2.4.0文件夹下obdlib64文件夹拷贝至libodb-qt-2.4.0文件夹。(未拷贝会生成失败报错)

  2. 使用visual studio 2019打开odb-examples-2.4.0文件夹下examples-mssql-vc12.sln文件,弹出的对话框点击确定。(未升级到目标框架会生成失败报错)

  3. 在配置管理器里选择要配置的类型Debug/ReleaseWin32/x64

  4. 项目/属性/VC++目录/库目录中添加odb.lib,odb-mssql.lib所在的目录(编译libodb-mssql时的库生成目录,步骤一已拷贝至libodb-examples-2.4.0文件夹下lib64目录)(未添加正确库目录会生成失败报错)

  5. 项目/属性/VC++目录/包含目录中添加odb文件夹所在的目录(步骤一已拷贝至libodb-mssql-2.4.0文件夹下,故此处为libodb-examples-2.4.0目录),包含libodb-examples/c++11目录 (未添加正确包含目录会生成失败报错)

  6. 使用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


  1. Ctrl+B编译

  2. odb-examples-2.4.0\c++11\x64\Release目录下生成可执行文件driver.exe,将编译libodb和libobd-mssql时生成的动态库文件(bin目录下odb-2.4-vc12.dllodb-mssql-2.4-vc12.dll)复制到该目录下

  3. odb-examples-2.4.0\c++11\x64\Release目录下打开命令行,执行driver.exe -U <你的用户名> -P <你的密码> -d <数据库名>

  4. 如果有错误产生,可能因为指定数据库里没有对应表格

  5. 打开数据库,运行编译生成的SQL脚本employee.sql,生成数据库表

  6. 再次在命令行中执行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

相关推荐
腾讯云云开发18 小时前
小程序数据库权限管理,一看就会!——CloudBase新手指南
前端·数据库·微信小程序
ApacheSeaTunnel18 小时前
LLM 时代,DataAgent × WhaleTunnel 如何将数据库变更瞬时 “转译” 为洞察?
大数据·ai·开源·llm·数据同步·白鲸开源·whaletunnel
闻缺陷则喜何志丹19 小时前
【贪心 字典序 回文 最长公共前缀】LeetCode3734. 大于目标字符串的最小字典序回文排列|分数未知
c++·算法·力扣·贪心·字典序·回文·最长公共前缀
MobotStone19 小时前
告别就业焦虑!普通人靠AI“工具”创业的3条捷径
开源
王道长服务器 | 亚马逊云19 小时前
帝国CMS + AWS:老牌内容系统的新生之路
服务器·网络·数据库·云计算·aws
武子康19 小时前
AI研究-118 具身智能 Mobile-ALOHA 解读:移动+双臂模仿学习的开源方案(含论文/代码/套件链接)
人工智能·深度学习·学习·机器学习·ai·开源·模仿学习
_OP_CHEN20 小时前
C++进阶:(四)set系列容器的全面指南
开发语言·c++·stl·set·multiset·关联式容器·setoj题
李慕婉学姐20 小时前
Springboot的民宿管理系统的设计与实现29rhm9uh(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。
数据库·spring boot·后端
qq_4798754320 小时前
Linux time function in C/C++【2】
linux·c语言·c++
LB211221 小时前
Redis黑马点评 Feed流
数据库·redis·缓存