系统环境: Ubuntu12.04 Server

ODB简介 :

ODB是用于C ++的开源,跨平台和跨数据库对象关系映射(ORM)系统。 它允许您将C ++对象保留到关系数据库,而无需处理表,列或SQL,而无需手动编写任何映射代码。 ODB支持MySQL,SQLite,PostgreSQL,Oracle和Microsoft SQL Server关系数据库以及C ++ 98/03和C ++ 11语言标准。 它还带有Boost和Qt的可选配置文件,允许您在持久的C ++类中无缝地使用这些库中的值类型,容器和智能指针。

####一 .安装

因为我这是一台纯净的ubuntu, 所以很多软件,库都没安装, 如果有的话可以忽略

#####1.安装必要软件,库

apt-get install gcc g++ mysql-server libmysqlclient-dev make -y

odb-2.4.0.tar.gz

libodb-2.4.0.tar.gz

libodb-mysql-2.4.0.tar.gz

#####3.解压

创建一个目录

将下载的3个tar.gz的包放到目录下

解压

mkdir odb

mv odb-2.4.0.tar.gz libodb-2.4.0.tar.gz libodb-mysql-2.4.0.tar.gz odb

cd odb

tar -xf odb-2.4.0.tar.gz

tar -xf libodb-2.4.0.tar.gz

tar -xf libodb-mysql-2.4.0.tar.gz

#####4.安装

安装libodb-2.4.0

cd libodb-2.4.0

./configure

make

make install

安装libodb-mysql-2.4.0

cd libodb-mysql-2.4.0

./configure

make

make install

安装odb-2.4.0

cd odb-2.4.0

./configure

### 报错

configure: error: g++ does not support plugins; reconfigure GCC with --enable-plugin

gcc -v ### 查看一下gcc 版本 我这里是4.6 下面就 安装4.6版本的dev包

apt-get install gcc-4.6-plugin-dev

### 安装完再次运行

./configure

### 报错

configure: error: libcutl is not found; consider using --with-libcutl=DIR

### 解压

tar -xvf libcutl-1.10.0.tar.gz

### 安装

./configure

make

make install

libcutl 安装成功后, 继续安装odb-2.4.0

./confgiure

make

make install

没报错 , odb安装成功

二.使用

odb -d mysql --generate-query --generate-schema person.hxx

报错

odb: error while loading shared libraries: libcutl-1.10.so: cannot open shared object file: No such file or directory

原因是,在安装libcutl的时候, configure没有指定prefix, 找不到该so文件

创建libcutl-1.10.so的软连接

ln -s /usr/local/lib/libcutl-1.10.so /usr/lib/libcutl-1.10.so

再次执行 生成4个文件

-rw-r--r-- 1 root root 8754 May 5 17:56 person-odb.hxx

-rw-r--r-- 1 root root 311 May 5 17:56 person.sql

-rw-r--r-- 1 root root 1487 May 5 17:56 person-odb.ixx

-rw-r--r-- 1 root root 21752 May 5 17:56 person-odb.cxx

修改driver.cxx文件

原代码:

auto_ptr db (create_database (argc, argv));

修改为

auto_ptr<:database> db (

new odb::mysql::database (

"root" //user

,"123456" //passwd

,"test" // database

,"localhost"

,3306

));

创建数据库

mysql -u root -p'123456' -e 'create database test'

修改 person.sql

1 /* This file was generated by ODB, object-relational mapping (ORM)

2 * compiler for C++.

3 */

4 use test;

5 DROP TABLE IF EXISTS `person`;

6

7 CREATE TABLE `person` (

8 `id` BIGINT UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT,

9 `first` TEXT NOT NULL,

10 `last` TEXT NOT NULL,

11 `age` SMALLINT UNSIGNED NOT NULL)

12 ENGINE=InnoDB;

13

创建表

mysql -uroot -p'123456' < person.sql

执行

c++ -c person-odb.cxx

c++ -DDATABASE_MYSQL -c driver.cxx

c++ -o driver driver.o person-odb.o -lodb-mysql -lodb

执行成功,生成执行档 driver

root@ubuntu:~/code/hello# ./driver

Hello, John Doe!

Hello, Jane Doe!

count : 3

min age: 31

max age: 33

linux ubuntu 安装odb,Ubuntu 使用C++ ORM框架--ODB相关推荐

  1. ubuntu安装jdk,ubuntu设置java环境变量

    ubuntu安装jdk,ubuntu设置java环境变量,ubuntu安装jdk,ubuntu设置java环境变量,ubuntu安装jdk,ubuntu设置java环境变量 下载jdk-6u12-li ...

  2. linux终端安装playonlinux,Ubuntu怎么安装PlayOnLinux

    PlayOnLinux对于喜欢Windows软件但使用Linux系统的朋友来说是款非常不错的软件,能够让你在Linux上玩Windows游戏,那么Ubuntu要如何安装PlayOnLinux呢?随学习 ...

  3. linux终端安装cuda,Ubuntu下安装CUDA10.0以及问题

    tensorflow版本与cuda和cudnn的对应关系:https://tensorflow.google.cn/install/source 安装一定要查看CUDA要求的linux下的Driver ...

  4. ubuntu linux kvm安装,基于Ubuntu 14.04 KVM拟化安装部署

    1. 宿主机环境(dell备份服务器) Ubuntu 14.04 LTS 64位 内存:16G 硬盘:2T 2. 确认CPU是否支持硬件虚拟化 root@linuxidc:~# egrep -o '( ...

  5. linux终端安装playonlinux,Ubuntu安装PlayOnLinux的步骤

    PlayOnLinux对于喜欢Windows软件但使用Linux系统的朋友来说是款非常不错的软件,能够让你在Linux上玩Windows游戏,那么Ubuntu要如何安装PlayOnLinux呢?随小编 ...

  6. Linux入门——1、Linux的安装(Ubuntu)

    1.虚拟机下载,本人使用的虚拟机是VM VirtualBox.点击进入官网下载(根据自己的系统选择对应的下载) 2.Linux系统镜像下载.点击进入Ubuntu官网下载 Linux系统直接地说可以认为 ...

  7. Linux Deploy安装配置Ubuntu使用教程

    记录Linux Deploy使用总结 1. 前言 最近换了一部新手机,老的手机荣耀play也不能空着.正好平时电脑装了个虚拟机Ubuntu来做开发/运维环境,有点占电脑配置,无法一边开虚拟机一边玩游戏 ...

  8. linux testlink 安装,在ubuntu上安装TestLink指南

    本指南适用Bitnami TestLink Stack方式在linux系统上安装TestLink 1.安装包下载 https://bitnami.com/stack/testlink/installe ...

  9. Ubuntu安装及Ubuntu下常用软件安装(不断补充)及Windows相关--软件开发用途

    之前一直使用Window系统,现在工作中大家主流使用Ubuntu,同事帮忙装个Ubuntu系统,事后写一下安装过程,以备后续再次安装查阅. 1Ubuntu安装 1.1Ubuntu文件下载: Ubunt ...

  10. linux终端安装playonlinux,Ubuntu安装PlayOnlinux

    PlayOnLinux 是一款 wine HQ 的前端软件,意思就是我们可以通过 PlayOnLinux 在 Linux 和 Mac OS X 上更加方便运行 windows 软件,更加方便的安装.使 ...

最新文章

  1. bestcoder #71 1003 找位运算的最大生成树
  2. ScrollView中的LinearLayout不能使用android:layout_heig...
  3. volte信令流程详解_VOLTE高清语音通话,呼叫时延低于3秒是如何做到的?
  4. 怎么简单的锁定文件夹_简单性与鲁棒性–在锁定文件处理中展示
  5. PHP采集程序中的常用函数
  6. matlab中函数绝对值图像,ex的图像(绝对值的函数图像口诀)
  7. win32开发(消息机制)
  8. [linux]获取当前文件所在目录的函数
  9. 用程序去掉文件和文件夹的只读属性
  10. 创客匠人抖音小程序引流转化三步走
  11. 安卓 运行 linux 桌面,安卓上运行原生Xorg和Linux桌面记录[完结]
  12. 基于thinkphp开源cms 对比
  13. 硬盘安装Win7全攻略(图解)
  14. PHP地图规划骑行路径,高德路径规划,自定义骑行路线(适用3D地图)
  15. 执念斩长河入CSDN的第一篇日志
  16. 经典简单的猜数字小游戏
  17. java.lang.NoSuchFieldError: count at org.eclipse.jface.viewers.ColumnViewer$1.mouseDown
  18. fgets函数的使用
  19. latex转成mathml_使用MathML或LaTeX和MathJax探索跨浏览器的数学方程
  20. kafka —— consumers 消费者 group 找不到得原因

热门文章

  1. MSN Messenger的用户管理
  2. linux进程僵尸问题的原因,Linux僵尸进程产生原因及避免方法
  3. 游戏外挂篇:如何Dump内存获得游戏的辅助
  4. 非线性系统的神经网络控制(常用介绍)--理论
  5. VC++_2010_学习版_未能下载以下组件解决方案和microsoft应用程序错误报告
  6. bootstrop table api
  7. C语言程序设计题目汇总(不断更新中)
  8. [渝粤教育] 信阳师范学院 奥尔夫音乐教育 参考 资料
  9. 自制狂拍灰太狼小游戏(HTML+CSS+JavaScript)
  10. Win10下安装Ubuntu16.04-空间不可用-个人志