编译 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