编译 mongocxx 以及交叉编译 - housekeeper-software/tech GitHub Wiki

来自华为论坛

[数据库] mongdb客户端驱动安装参考【arm】
发表于 2020-02-28 11:28:382772查看
1 安装mongdb-c-driver


1.1 安装libbson库1.0.0版本
参考:https://github.com/mongodb/libbson/tree/1.0.0
1)安装环境依赖

yum install git automake autoconf libtool gcc

2)获取libbson库1.0.0版本源码

wget https://github.com/mongodb/libbson/archive/1.0.0.tar.gz

3)解压libbson库1.0.0版本源码

tar zxvf 1.0.0.tar.gz

4)进入libbson-1.0.0路径执行编译

cd libbson-1.0.0/ 

./autogen.sh 

make 

make install 


1.2 安装libmongc驱动
1)获取mongo-c-driver-1.13.1.tar.gz源码

下载地址:https://github.com/mongodb/mongo-c-driver/releases/tag/1.13.1

wget https://github.com/mongodb/mongo-c-driver/archive/1.13.1.tar.gz

2)解压mongo-c-driver-1.13.1.tar.gz源码

tar zxvf 1.13.1.tar.gz

3)进入mongo-c-driver-1.13.1.tar.gz源码解压路径

cd mongo-c-driver-1.13.1/

4)创建编译路径

mkdir cmake-build

5)进入编译路径

cd cmake-build/

6)执行编译

cmake -DENABLE_AUTOMATIC_INIT_AND_CLEANUP=OFF ..

make 

7)执行编译安装

make install

 


2 安装libmongcxx 版本 

1)获取mongo-cxx-driver-r3.4.0.tar.gz源码

wget https://github.com/mongodb/mongo-cxx-driver/archive/r3.4.0.tar.gz

2)解压mongo-cxx-driver-r3.4.0.tar.gz

tar zxzf r3.4.0.tar.gz 

3)进入mongo-cxx-driver-r3.4.0.tar.gz解压路径

cd mongo-cxx-driver-r3.4.0/build/

4)执行编译
cmake .. -DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED_LIBS_WITH_STATIC_MONGOC=ON -DBSONCXX_POLY_USE_SYSTEM_MNMLSTC=0 -DCMAKE_PREFIX_PATH=/usr/local/lib/ -DCMAKE_INSTALL_PREFIX=/usr/local/

【注】:其中,/usr/local/lib/是libmonc的驱动安装路径
make -j 96 

5)执行编译安装

make install 





注:上面的步骤都需要执行,不能缺少;

楼主
用户头像
五湖四海@银河护卫队
版主
帖子
227
回复
2529
发消息
关注
安装libmongcxx 版本执行如下命令

cmake .. -DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED_LIBS_WITH_STATIC_MONGOC=ON -DBSONCXX_POLY_USE_SYSTEM_MNMLSTC=0 -DCMAKE_PREFIX_PATH=/usr/local/lib/ -DCMAKE_INSTALL_PREFIX=/usr/local/

报如下错误:

CMake Error at src/bsoncxx/CMakeLists.txt:81 (find_package):
By not providing "Findlibbson-1.0.cmake" in CMAKE_MODULE_PATH this project
has asked CMake to find a package configuration file provided by
"libbson-1.0", but CMake did not find one.

Could not find a package configuration file provided by "libbson-1.0"
(requested version 1.10.0) with any of the following names:
libbson-1.0Config.cmake
libbson-1.0-config.cmake

Add the installation prefix of "libbson-1.0" to CMAKE_PREFIX_PATH or set
"libbson-1.0_DIR" to a directory containing one of the above files.  If
"libbson-1.0" provides a separate development package or SDK, be sure it
has been installed.


出现问题的原因:



因为mongo-c-driver没有安装



解决方法:

安装libmongc驱动,获取源码执行cmake -DENABLE_AUTOMATIC_INIT_AND_CLEANUP=OFF ..后,还需要执行make && make install 进行安装,然后再编译mongo-cxx-driver即可。

回复于2020-02-28 14:21:31

补充

mongoc driver 还要编译 openssl
否则连不上阿里 mongodb

#!/bin/bash

set -x
set -u


export CC="gcc"
export CXX="g++"

OPENSSLDIR=$1

PREFIX=${PWD}/build

VER=mongo-c-driver-1.13.1
rm -rf $VER
mkdir $VER
tar zxvf $VER.tar.gz

rm -rf compile
mkdir compile

cd compile

cmake 	-DCMAKE_BUILD_TYPE=Release \
	-DENABLE_AUTOMATIC_INIT_AND_CLEANUP=OFF \
	-DMONGOC_ENABLE_CRYPTO=ON \
	-DMONGOC_ENABLE_SSL=ON \
	-DENABLE_SSL=OPENSSL \
	-DOPENSSL_ROOT_DIR="$OPENSSLDIR/x86_64" \
	-DCMAKE_INSTALL_PREFIX=$PREFIX/x86_64 \
	-DCMAKE_FIND_ROOT_PATH=$PREFIX/x86_64 \
	../$VER

make -j8 && make install