build mongocxx3.1.1 on debian7.5

前言

丢了一个编译环境,重新搭一个.
虽然别人已经做了mongocxx3.1.1编译的试验,但是自己做,还是一堆问题. 每个人的环境不一样, 出了没有答案的问题,要很久才能想明白。

试验环境

debian7.5(在干净的光盘安装的基础上, 将原版的gcc4.x升级到gcc4.7, 装了gdb), 可以编译一般的工程,但是无法编译c++11的工程.

试验目标

搭建一个可以编译使用mongocxx3.1.1的linux-c工程的编译环境

参考资料

https://blog.csdn.net/hhq163/article/details/52056948

试验材料

stuff_for_build_mongocxx_3.1.1.7z
压缩包中的文件列表:
automake-1.14.tar.gz
cmake-3.2.2.tar.gz
gcc-4.8.5.tar.bz2
libbson-1.6.0.tar.gz
mongo-c-driver-1.6.0.tar.gz
r3.1.1.tar.gz <= 这个是mongocxx_3.1.1的源码包

做完试验整理了一个vmware14的虚拟机镜像, gcc4.8.5(支持c++11), gdb8.1, mongocxx3.1.1应用编译环境都备好了.共4个分卷。
debian7.5_mongocxx_3.1.1_build_env_ok.7z.001
debian7.5_mongocxx_3.1.1_build_env_ok.7z.002
debian7.5_mongocxx_3.1.1_build_env_ok.7z.003
debian7.5_mongocxx_3.1.1_build_env_ok.7z.004

试验记录

软件源

root@debian750devmin:/home/dev# cat /etc/apt/sources.list
#
deb http://ftp.cn.debian.org/debian/ wheezy main contrib non-free
deb http://ftp.cn.debian.org/debian sid main

安装gcc4.8.x

已经做了一个单独的试验
https://blog.csdn.net/lostspeed/article/details/80631397

安装cmake3.x

cmake –version

如果没装cmake, 就需要装cmake3.x
如果装了低版cmake, 先卸了
aptitude remove cmake

下载cmake-3.2.2
cd /home/dev
http://www.cmake.org/files/v3.2/cmake-3.2.2.tar.gz 下载不动
从csdn下载了一个 cmake-3.2.2.tar.gz

copy cmake-3.2.2.tar.gz to /home/dev/
cd /home/dev/
tar -xzvf ./cmake-3.2.2.tar.gz
cd cmake-3.2.2
./configure
make
make install

安装位置
/usr/local/bin/cmake

查看cmake安装信息
root@debian750devmin:/home/dev# cmake –version
cmake version 3.2.2

安装MongoDB C driver

cd /home/dev
wget https://github.com/mongodb/mongo-c-driver/releases/download/1.6.0/mongo-c-driver-1.6.0.tar.gz
服务器可能忙, 下载了几次才开始下载.

aptitude install pkg-config
aptitude install openssl

tar -xvzf mongo-c-driver-1.6.0.tar.gz
cd /home/dev/mongo-c-driver-1.6.0

// –enable-ssl 选项重要, mongocxx会调用mongoc的2个带ssl的API.
./configure –disable-automatic-init-and-cleanup –enable-ssl
make
make install

安装位置
/usr/local/lib
root@debian750devmin:/home/dev/mongo-c-driver-1.6.0# ls /usr/local/lib/mongo
-rwxr-xr-x 1 root staff 1007 6月 9 20:23 /usr/local/lib/libmongoc-1.0.la*
lrwxrwxrwx 1 root staff 22 6月 9 20:23 /usr/local/lib/libmongoc-1.0.so -> libmongoc-1.0.so.0.0.0*
lrwxrwxrwx 1 root staff 22 6月 9 20:23 /usr/local/lib/libmongoc-1.0.so.0 -> libmongoc-1.0.so.0.0.0*
-rwxr-xr-x 1 root staff 410254 6月 9 20:23 /usr/local/lib/libmongoc-1.0.so.0.0.0*

安装automake

cd /home/dev
wget http://ftp.gnu.org/gnu/automake/automake-1.14.tar.gz
tar -zxvf automake-1.14.tar.gz
cd automake-1.14
aptitude install autoconf
aptitude install perl
./bootstrap.sh
./configure
make

安装libbson

cd /home/dev
wget https://github.com/mongodb/libbson/releases/download/1.6.0/libbson-1.6.0.tar.gz
tar -xzvf libbson-1.6.0.tar.gz
cd libbson-1.6.0/
aclocal
./configure
make
make install

安装mongocxx driver

cd /home/dev
wget https://github.com/mongodb/mongo-cxx-driver/archive/r3.1.1.tar.gz
tar -zxvf r3.1.1.tar.gz
cd ./mongo-cxx-driver-r3.1.1
export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig/

// 需要git来下载EP_mnmlstc_core, 必须安装git
aptitude install git
cd build
cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local ..

// 会自动下载,编译EP_mnmlstc_core
make
make install

// 安装位置
– Installing: /usr/local/lib/libmongocxx.so.3.1.1
– Installing: /usr/local/lib/libmongocxx.so._noabi
– Installing: /usr/local/lib/libmongocxx.so
– Set runtime path of “/usr/local/lib/libmongocxx.so.3.1.1” to “/usr/local/lib”
– Installing: /usr/local/lib/libmongocxx.a

安装mysql client

这步和本主题无关, 是我自己的工程需要
aptitude install mysql-client

// 安装位置
/usr/lib/libreoffice/program/libmysqllo.so
/usr/lib/x86_64-linux-gnu/libmysqlclient_r.so.18.0.0
/usr/lib/x86_64-linux-gnu/libmysqlclient.so.18
/usr/lib/x86_64-linux-gnu/libmysqlclient_r.so.18
/usr/lib/x86_64-linux-gnu/libmysqlclient.so.18.0.0

安装gdb

这步和本主题无关, 是我自己的工程需要
下载了一个新版gdb.
download gdb-8.1.tar.xz from http://ftp.gnu.org/gnu/gdb/
csdn下载点 :gdb-8.1.tar.xz
xz -d gdb-8.1.tar.xz
tar -xvf ./gdb-8.1.tar
cd ./gdb_8.1

./configure
make
make install

gdb -tui …
gdb: TUI mode is not supported

./configure –enable-tui=yes
make
configure: error: no enhanced curses library found; disable TUI

aptitude install libncurses
aptitude install libncurses5-dev

./configure –enable-tui=yes
make
make install

猜你喜欢

转载自blog.csdn.net/lostspeed/article/details/80637958