ODB——基于c++的ORM映射框架尝试(安装)
这篇博客应该是和之前的重拾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映射框架尝试(安装)相关推荐
- ODB——基于c++的ORM映射框架尝试(使用)
2.使用 首先,需要定义一个对象,用来和数据库字段对应: [cce lang="cpp"] #ifndef VOLUME_H #define VOLUME_H #include & ...
- ORM映射框架总结--数据库操作库(精修版)
1. ORM数据库操作原理 前面已经介绍过了个人ORM映射框架中的三个核心库: 实体-数据库 映射特性关系: http://www.cnblogs.com/qingyuan/archive ...
- ORM 系列:一个个人ORM映射框架
转载:http://www.cnblogs.com/qingyuan/category/239086.html 个人ORM映射框架中的三个核心库: 实体-数据库 映射特性关系: http://www. ...
- Java注解初体验(简单ORM映射框架)
2019独角兽企业重金招聘Python工程师标准>>> Java学了很久了,始终没有深入学习过注解反射这些高级特性,晚上花时间研究了一下,其实还挺有意思的,貌似也搞清楚了像Hiber ...
- 基于.net的ORM常用框架说明
一.ORM概述 ORM 对象关系映射(Object-Relational Mapping),也就是对象与数据库建立映射关系,核心原则就是简单(以最基本的形式建模数据).传达性(数据库结果被任何人都能理 ...
- ORM映射框架总结--SQL 语句生成组件
1. SQL 语句生成组建 之前说过ORM框架中有一个非常重要的组件,那就是SQL语句生成组件.SQL语句生成组件,顾名思义就是用于生成sql语句的一个组件.之前的Attribute 是用 ...
- ORM映射框架总结--数据操作(五)
1.数据库加载驱动和操作接口 IDbProvider 代码 1 /** 2 * 3 * 2009-4-22 4 * 5 * 6 * 数据库操作加载驱动接口, 7 * 提 ...
- 基于.NET平台常用的框架整理(转)
分布式缓存框架: Microsoft Velocity:微软自家分布式缓存服务框架. Memcahed:一套分布式的高速缓存系统,目前被许多网站使用以提升网站的访问速度. Redis:是一个高性能的K ...
- 基于.NET平台常用的框架整理(收藏)
自从学习.NET以来,优雅的编程风格,极度简单的可扩展性,足够强大开发工具,极小的学习曲线,让我对这个平台产生了浓厚的兴趣,在工作和学习中也积累了一些开源的组件,就目前想到的先整理于此,如果再想到,就 ...
最新文章
- 零基础自学python看什么书-学习Python可以看书籍学习吗?老男孩Python入门课程
- 【进展】不只是感谢信,物联网平台哪家强?冰箱运行监测系统项目重启
- nodejs+express4.0+mongodb安装方法 for Linux, Mac
- http 和 https_详解http和https的区别
- java 什么是servlet_JavaWeb解释一下什么是 servlet?
- glassfish发布应用_WildFly 8与GlassFish 4 –选择哪个应用服务器
- 在线生成横幅BANNER广告图网站源码
- ubuntu下安装python的gevent模块遇到的一个问题
- 蛋白序列GO号注释及问题
- ajax怎么添加表单,使用Ajax动态地将表单添加到Django表单集
- linux解压缩及源码安装
- ps html插件初始化失败,解决PSCC2019无法安装扩展插件怎么办?
- 【Linux安全审计机制模块总体描述】
- python pyd_python pyd 加密相关
- 远程访问openwrt路由器+配置动态DNS
- crucible3.x +fisheye3.x 安装和破解
- html name选择器,iframe标签的name属性
- python开启摄像头以及深度学习实现目标检测
- JeeSite(2):导入数据,进入系统
- Could not resolve placeholder ‘project.version‘ in value “${project.version}”
热门文章
- 用eclipse往mysql插入中文出现乱码解决方法
- mixin network_【译文】Mixin——以最高的安全性满足所有区块链资产的交易需求
- LeetCode(合集) 路径总和(二叉树) golang copy的值复制
- Linux系统监控shell脚本
- linux C++ 多进程初步02
- python 之 __new__ 方法理解
- 软件工程---08.软件测试
- Array | 74. Search a 2D Matrix
- 上海大厂Java面试经历:初步理解类加载运行机制和类加载过程
- 保驾护航金三银四,分分钟搞定!