这篇博客应该是和之前的重拾cgi一起的。当时为了模仿java的web框架,从页面的模板,到数据库的ORM,都找个对应的库来进行尝试。数据库用的就是ODB,官方网站是http://www.codesynthesis.com/products/odb/。

1、安装
odb是直接提供源代码的,主要包含这几个部分:odb、libodb、libodb-sqlite等,用途分别是:
odb是ODB编译器,类似于qt的moc,将c++源码中包含ODB特定宏的代码,生成对应的c++代码。
libodb是运行时库,ORM映射的主要逻辑都在这里
libodb-sqlite等,是odb提供的针对不通数据库的驱动,以实现对数据库的底层操作。其他还有profile、example等包,没有用到就没去了解。
这些包都是很标准的源码包,通过configure、make等就可以进行安装了。给自己的gentoo系统,针对这些用到的包写了ebuild。

[cce]
# Copyright 1999-2012 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: $

EAPI=4
inherit eutils autotools-utils versionator

DESCRIPTION="ODB Compiler"
HOMEPAGE="http://www.codesynthesis.com/products/odb/"
SRC_URI="http://www.codesynthesis.com/download/${PN}/$(get_version_component_range 1-2)/${P}.tar.bz2"

LICENSE="GPLv2"
SLOT="0"
KEYWORDS="~amd64"
IUSE=""

DEPEND="dev-cpp/libcutl"
RDEPEND="${DEPEND}"

src_prepare() {
epatch "${FILESDIR}/${PN}-distdir.patch"
}
[/cce]
这里要注意下,odb编译依赖libcutl,这个貌似也是这个codesynthesis上的,对此也写了一个ebuild:
[cce]
# Copyright 1999-2012 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: $

EAPI=4
inherit autotools-utils versionator

DESCRIPTION="Library of C++ utilities — meta-programming tests, smart pointers,
containers"
HOMEPAGE="http://codesynthesis.com/projects/libcutl/"
SRC_URI="http://codesynthesis.com/download/${PN}/$(get_version_component_range 1-2)/${P}.tar.bz2"

LICENSE="MIT"
SLOT="0"
KEYWORDS="~amd64 ~x86 ~mips"
IUSE="static-libs"

DEPEND="dev-libs/boost"
RDEPEND="${DEPEND}"

src_configure() {
local myeconfargs=(
–with-external-boost
–docdir=/tmp/dropme
)

autotools-utils_src_configure
}

src_install() {
autotools-utils_src_install

rm -r "${D}"/tmp/dropme || die
}
[/cce]

libodb的ebuild:
[cce]
# Copyright 1999-2012 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: $

EAPI=4

DESCRIPTION="ODB is an open-source, cross-platform and cross-database
object-relational mapping (ORM) system for C++."
HOMEPAGE="http://www.codesynthesis.com/products/odb/"
SRC_URI="http://www.codesynthesis.com/download/odb/2.0/${P}.tar.bz2"

LICENSE="GPLv2"
SLOT="0"
KEYWORDS="~amd64 ~x86 ~mips"
IUSE=""

DEPEND="dev-db/odb"
RDEPEND="${DEPEND}"
[/cce]

libodb-sqlite的ebuild:
[cce]
# Copyright 1999-2012 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: $

EAPI=4

DESCRIPTION=”ODB is an open-source, cross-platform and cross-database
object-relational mapping (ORM) system for C++.”
HOMEPAGE=”http://www.codesynthesis.com/products/odb/”
SRC_URI=”http://www.codesynthesis.com/download/odb/2.0/${P}.tar.bz2″

LICENSE=”GPLv2″
SLOT=”0″
KEYWORDS=”~amd64 ~x86 ~mips”
IUSE=””

DEPEND=”dev-db/libodb
dev-db/sqlite”
RDEPEND=”${DEPEND}”
[/cce]

转载自:https://coolex.info/blog/374.html

ODB——基于c++的ORM映射框架尝试(安装)相关推荐

  1. ODB——基于c++的ORM映射框架尝试(使用)

    2.使用 首先,需要定义一个对象,用来和数据库字段对应: [cce lang="cpp"] #ifndef VOLUME_H #define VOLUME_H #include & ...

  2. ORM映射框架总结--数据库操作库(精修版)

    1.       ORM数据库操作原理 前面已经介绍过了个人ORM映射框架中的三个核心库: 实体-数据库 映射特性关系: http://www.cnblogs.com/qingyuan/archive ...

  3. ORM 系列:一个个人ORM映射框架

    转载:http://www.cnblogs.com/qingyuan/category/239086.html 个人ORM映射框架中的三个核心库: 实体-数据库 映射特性关系: http://www. ...

  4. Java注解初体验(简单ORM映射框架)

    2019独角兽企业重金招聘Python工程师标准>>> Java学了很久了,始终没有深入学习过注解反射这些高级特性,晚上花时间研究了一下,其实还挺有意思的,貌似也搞清楚了像Hiber ...

  5. 基于.net的ORM常用框架说明

    一.ORM概述 ORM 对象关系映射(Object-Relational Mapping),也就是对象与数据库建立映射关系,核心原则就是简单(以最基本的形式建模数据).传达性(数据库结果被任何人都能理 ...

  6. ORM映射框架总结--SQL 语句生成组件

    1.       SQL 语句生成组建 之前说过ORM框架中有一个非常重要的组件,那就是SQL语句生成组件.SQL语句生成组件,顾名思义就是用于生成sql语句的一个组件.之前的Attribute 是用 ...

  7. ORM映射框架总结--数据操作(五)

    1.数据库加载驱动和操作接口 IDbProvider 代码  1 /**  2  *   3  * 2009-4-22  4  *   5  *   6  * 数据库操作加载驱动接口,  7  * 提 ...

  8. 基于.NET平台常用的框架整理(转)

    分布式缓存框架: Microsoft Velocity:微软自家分布式缓存服务框架. Memcahed:一套分布式的高速缓存系统,目前被许多网站使用以提升网站的访问速度. Redis:是一个高性能的K ...

  9. 基于.NET平台常用的框架整理(收藏)

    自从学习.NET以来,优雅的编程风格,极度简单的可扩展性,足够强大开发工具,极小的学习曲线,让我对这个平台产生了浓厚的兴趣,在工作和学习中也积累了一些开源的组件,就目前想到的先整理于此,如果再想到,就 ...

最新文章

  1. 零基础自学python看什么书-学习Python可以看书籍学习吗?老男孩Python入门课程
  2. 【进展】不只是感谢信,物联网平台哪家强?冰箱运行监测系统项目重启
  3. nodejs+express4.0+mongodb安装方法 for Linux, Mac
  4. http 和 https_详解http和https的区别
  5. java 什么是servlet_JavaWeb解释一下什么是 servlet?
  6. glassfish发布应用_WildFly 8与GlassFish 4 –选择哪个应用服务器
  7. 在线生成横幅BANNER广告图网站源码
  8. ubuntu下安装python的gevent模块遇到的一个问题
  9. 蛋白序列GO号注释及问题
  10. ajax怎么添加表单,使用Ajax动态地将表单添加到Django表单集
  11. linux解压缩及源码安装
  12. ps html插件初始化失败,解决PSCC2019无法安装扩展插件怎么办?
  13. 【Linux安全审计机制模块总体描述】
  14. python pyd_python pyd 加密相关
  15. 远程访问openwrt路由器+配置动态DNS
  16. crucible3.x +fisheye3.x 安装和破解
  17. html name选择器,iframe标签的name属性
  18. python开启摄像头以及深度学习实现目标检测
  19. JeeSite(2):导入数据,进入系统
  20. Could not resolve placeholder ‘project.version‘ in value “${project.version}”

热门文章

  1. 用eclipse往mysql插入中文出现乱码解决方法
  2. mixin network_【译文】Mixin——以最高的安全性满足所有区块链资产的交易需求
  3. LeetCode(合集) 路径总和(二叉树) golang copy的值复制
  4. Linux系统监控shell脚本
  5. linux C++ 多进程初步02
  6. python 之 __new__ 方法理解
  7. 软件工程---08.软件测试
  8. Array | 74. Search a 2D Matrix
  9. 上海大厂Java面试经历:初步理解类加载运行机制和类加载过程
  10. 保驾护航金三银四,分分钟搞定!