首页 > 其他分享 >【开源库】libodb库编译及使用

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

时间:2024-07-19 08:59:35浏览次数:20  
标签:libodb mssql 编译 开源 文件夹 odb 目录 2.4

前言

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

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

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

在这里插入图片描述
在这里插入图片描述
7. Ctrl+B编译
8. 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)复制到该目录下
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_vs2019_x64_release
libodb-mssql_vs2019_x64_release
libodb-qt_vs2019_x64_release

标签:libodb,mssql,编译,开源,文件夹,odb,目录,2.4
From: https://blog.csdn.net/weixin_45125631/article/details/140485508

相关文章

  • cocos2d-x 4.0在manjaro 24.0.4编译
    相关版本:gcc/g++14.1.1cmake3.30.01、先参考install-deps-linux.sh下载对应依赖2、cocos2d-x-4.0/templates/lua-template-default/CMakeLists.txt中66行62│if(ANDROID)63│#changeAPP_NAMEtothesharelibrarynameforAndroid,it'svaluedepend......
  • 【LLM大模型】《开源大模型食用指南》全网发布,轻松助你速通llm大模型!
    前言《开源大模型食用指南》是一个围绕开源大模型、针对国内初学者、基于AutoDL平台的中国宝宝专属大模型教程,针对各类开源大模型提供包括环境配置、本地部署、高效微调等技能在内的全流程指导,简化开源大模型的部署、使用和应用流程,让更多的普通学生、研究者更好地使用......
  • 支持语音电话、短信、企业微信、钉钉、APP、第三方接口、音柱等多种告警通知方式的智
    AI视频监控平台简介AI视频监控平台是一款功能强大且简单易用的实时算法视频监控系统。它的愿景是最底层打通各大芯片厂商相互间的壁垒,省去繁琐重复的适配流程,实现芯片、算法、应用的全流程组合,从而大大减少企业级应用约95%的开发成本。用户只需在界面上进行简单的操作,就可以实......
  • 支持多路多算法实时监控与AI计算的智慧能源开源了。
    简介AI视频监控平台,是一款功能强大且简单易用的实时算法视频监控系统。愿景在最底层打通各大芯片厂商相互间的壁垒,省去繁琐重复的适配流程,实现芯片、算法、应用的全流程组合,减少企业级应用约95%的开发成本,用户仅需在界面上简单操作,即可实现全视频的接入及布控。  v:159......
  • MiniRHex:一种开源的六足机器人 by DYNAMIXEL Robotis
    原文链接:https://www.youtube.com/watch?v=ldLXVDNCCzc  At#IROS 2023,weranintotheCarnegieMellonUniversity RobomechanicsLab.TheyhadsomereallycoolrobotstherethatwerePoweredby#DYNAMIXEL XLseriesmotors.Oneoftherobotstheyhadfeat......
  • 【开源库学习】libodb库学习(二)
    使用持久对象前面的章节为我们提供了ODB的高级概述,并展示了如何使用它在数据库中存储C++对象。在本章中,我们将更详细地研究ODB对象持久性模型以及核心数据库API。我们将从第1节和第3节中的基本概念和术语开始,并继续讨论第4节中的odb::数据库类、第5节中的事务和第6节中的连......
  • 探索混合专家(MoE)模型预训练:开源项目实操
    探索混合专家(MoE)模型预训练:开源项目实操Mantaverse 来自知乎​目录收起MOE模型是什么实现Moe模型实现步骤拆解1.初始化和形状调整2.计算路由器的logits3.初始化和创建专家掩码4.循环计算专家层输出5.恢复形状并返回结果预训练效果对比DeepseekMoE结语......
  • 在Linux中,编译内核的意义与步骤?
    在Linux系统中,编译内核是一个重要的操作,它允许用户根据自己的硬件配置和需求定制内核。以下是编译内核的意义和步骤的详细说明:1.编译内核的意义定制化:用户可以根据自己的硬件和需求选择内核的配置选项,从而优化系统性能。安全性:通过编译内核,可以去除不需要的模块和功能,减少潜......
  • 2024PHP在线客服系统源码+完全开源 带详细搭建教程
    本文是一个在线客服聊天系统源码。这是一款2024最新版本的PHP客服源码。基于ThinkPHP8.0+workerman,整体架构新颖全新UI,PHP客服端以及界面等即时通讯websocket服务端需要命令行执行。源码下载在下面链接中,下载zip压缩包https://gitee.com/source-code-home/php-customer-se......
  • 一款免费开源的在线图片压缩工具
    大家好,我是Java陈序员。我们在日常的生活中,由于一些图片太大,导致上传不了到一些网站,需要进行压缩!今天,给大家介绍一款免费开源的在线图片压缩工具,支持独立部署!关注微信公众号:【Java陈序员】,获取开源项目分享、AI副业分享、超200本经典计算机电子书籍等。项目介绍PicSmalle......