博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ODB——基于c++的ORM映射框架尝试(安装)
阅读量:6249 次
发布时间:2019-06-22

本文共 2739 字,大约阅读时间需要 9 分钟。

这篇博客应该是和之前的重拾cgi一起的。当时为了模仿java的web框架,从页面的模板,到数据库的ORM,都找个对应的库来进行尝试。数据库用的就是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

你可能感兴趣的文章
Arduino入门之前
查看>>
zoj 1904 Beavergnaw 计算圆柱和圆台的体积
查看>>
darknet源码学习
查看>>
移动端头部meta
查看>>
Redis客户端集群
查看>>
javascript基础篇:函数
查看>>
[CI] 使用Jenkins自动编译部署web应用
查看>>
SVN与TortoiseSVN实战:补丁详解
查看>>
java一些面试题
查看>>
干货型up主
查看>>
获取页面中所有dropdownlist类型控件
查看>>
stark组件(2):提取公共视图函数、URL分发和设置别名
查看>>
android——使用Interceptor设置缓存来给服务器减负
查看>>
样式独立性的解决方案
查看>>
读《淘宝数据魔方技术架构解析》有感
查看>>
使用Boost.Asio编写通信程序
查看>>
android mock location
查看>>
不要问我能赚多少,当你问这句话的时候,你的思想还停留在给别人打工的阶段,我只是你的仓库,能挣多少得问你自己想挣多少(转)...
查看>>
[MFC] 高仿Flappy bird 桌面版
查看>>
careercup-C和C++ 13.8
查看>>