Mongocxx ubuntu16.04 环境配置

博客介绍了MongoDB C/C++驱动安装的先决条件,包括CMake、gcc、ubuntu、git等版本要求。详细给出了mongoc driver 1.14.0和mongocxx 3.4.0的安装步骤,还介绍了测试文件编译的CMake配置,提及常见编译错误及解决办法,最后测试成功。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

   先决条件:

    • CMake 版本大于3.2
    • gcc 4.8, 5.4
    • ubuntu 16.04
    • git
  1. mongoc driver 1.14.0 安装
      1 wget “https://github.com/mongodb/mongo-c-driver/releases/download/1.14.0/mongo-c-driver-1.14.0.tar.gz”
      2 tar xzf mongo-c-driver-1.14.0.tar.gz
      3 cd mongo-c-driver-1.14.0.tar.gz
      4 mkdir cmake-build
      5 cmake -DENABLE_AUTOMATIC_INIT_AND_CLEANUP=OFF ..
      6 make
      7 sudo make install
  2. mongocxx 3.4.0
      1 wget "https://github.com/mongodb/mongo-cxx-driver/archive/r3.4.0.tar.gz"
      2 tar -xzf mongo-cxx-driver-r3.4.0
      3 cd mongo-cxx-driver-r3.4.0/build
      4 
      5 
      6 CMake: (此处需要安装git sudo apt-get install git)
      7 	cmake -DCMAKE_BUILD_TYPE=Release \
      8 	-DBSONCXX_POLY_USE_MNMLSTC=1 \
      9 	-DCMAKE_INSTALL_PREFIX=/usr/local \
     10 	-DLIBBSON_DIR=/usr/local/lib \
     11 	-DLIBMONGOC_DIR=/usr/local/lib ..
     12 
     13 	sudo make EP_mnmlstc_core 
     14 	make && sudo make install
  3. 测试文件编译(CMake)
      1 cmake_minimum_required(VERSION 2.6)
      2 project(test)
      3 
      4 
      5 set(CMAKE_BUILD_TYPE "Debug")
      6 set(CMAKE_CXX_FLAGS_DEBUG "$ENV{CXXFLAGS} -O0 -Wall -g -ggdb")
      7 set(CMAKE_CXX_FLAGS_RELEASE "$ENV{CXXFLAGS} -O3 -Wall")
      8 set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
      9 set(CMAKE_VERBOSE_MAKEFILE ON)
     10 
     11 
     12 
     13 include_directories(/usr/local/include/bsoncxx/v_noabi /usr/local/include/mongocxx/v_noabi)
     14 
     15 add_executable(test_example test.cpp)
     16 
     17 target_link_libraries(test_example bsoncxx mongocxx)
     18 
  4. 常见错误

编译未通过

./test_example: error while loading shared libraries: libbsoncxx.so._noabi: cannot open shared object file: No such file or directory

mongoc driver 路径系统未读到,手动链接库到 /etc/profile 重启bash 生效


LD_LIBRARY_PATH=/usr/local/lib
export LD_LIBRARY_PATH

CPATH=$CPATH:/usr/local/include/libmongoc-1.0:/usr/local/include/libbson-1.0:/usr/local/include/bsoncxx/v_noabi:/usr/local/include/mongocxx/v_noabi
export CPATH

CMAKE_PREFIX_PATH=/usr/local/lib.libbson-1.0
export CMAKE_PREFIX_PATH


测试代码

  1 #include <iostream>
  2 
  3 #include <bsoncxx/builder/stream/document.hpp>
  4 #include <bsoncxx/json.hpp>
  5 
  6 #include <mongocxx/client.hpp>
  7 #include <mongocxx/instance.hpp>
  8 
  9 int main(int, char**) {
 10     mongocxx::instance inst{};
 11     mongocxx::client conn{mongocxx::uri{}};
 12 
 13     bsoncxx::builder::stream::document document{};
 14 
 15     auto collection = conn["testdb"]["testcollection"];
 16     document << "hello" << "world";
 17 
 18     collection.insert_one(document.view());
 19     auto cursor = collection.find({});
 20 
 21     for (auto&& doc : cursor) {
 22         std::cout << bsoncxx::to_json(doc) << std::endl;
 23     }
 24 }

测试成功

{ "_id" : { "$oid" : "5ce27103177e415851716ee2" }, "hello" : "world" }

转载于:https://www.cnblogs.com/owenlyn/p/10893986.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值