首页 > 数据库 >mongodb c++ driver安装踩坑记

mongodb c++ driver安装踩坑记

时间:2023-05-30 22:01:10浏览次数:57  
标签:std 11 CMAKE CXX mongodb driver c++ FLAGS

 安装教程:https://mongodb.github.io/mongo-cxx-driver/mongocxx-v3/installation/

(1)

“initializer_list” file not found

http://stackoverflow.com/questions/19493671/initializer-list-no-such-file-or-directory

Since you are using GCC-4.8 and your problem is that you don't have the C++11 features try to add -std=c++11 to your compilation line.

I saw that you are using CMake, then this post may help you (you can replace -std=c++0x by -std=c++11 or -std=gnu++11).

Example:

# It appends the -std=c++11 option to CMAKE_CXX_FLAGS
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11") # for gcc >= 4.7

# Or
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++0x") # for gcc < 4.7

(2)

安装的过程中设置环境变量CPLUS_INCLUDE_PATH 指明mongoc和bson的inlcude目录:

http://stackoverflow.com/questions/2497344/what-is-the-environment-variable-for-gcc-g-to-look-for-h-files-during-compila

Just look at the actual gcc documentation. It's all explained there.

To summarize:

  • LIBRARY_PATH is for the linker, not for header files (used when looking for libraries requested by a -l option)
  • CPATH specifies directories to look for header files in (like the -I option)
  • C_INCLUDE_PATH and CPLUS_INCLUDE_PATH are like CPATH, but for C/C++ respectively

 (3)自己下载c++17的模拟库,然后放在本地,修改make file里git clone的路径

https://github.com/mnmlstc/core/tree/v1.1.0

(4) 

LD_LIBRARY_PATH="/usr/local/lib"

标签:std,11,CMAKE,CXX,mongodb,driver,c++,FLAGS
From: https://blog.51cto.com/u_11908275/6382330

相关文章

  • 单链表(c++实现)
    template<typenameT>classListNode{public:explicitListNode(Tvalue_,ListNode*next_=nullptr):value(value_),next(next_){}TgetValue()const{returnvalue;}ListNode<T>*getNext()const{returnnext;};voidsetNext(ListNo......
  • 内存泄漏、缓存溢出?C和C++,哪个更懂得管理内存质量?
    一、c/c++程序内存区域划分c和c++的内存区域划分是十分相似的,因为c++是完全兼容c语言,是c语言的面向对象的升级版。接下来看如下图:程序的内存区域被划分成6个区域。内核空间、栈、内存映射段、堆、数据段、代码段。下面是对相关内存区域名词解释:栈又叫堆栈--非静态局部变量/函数参数......
  • 为什么 C++ 有指针了还要引用
    引用传递,只是明面上,没有使用值传递,值传递本身是不可避免的。编译器,暗地里通过指针(或者其他可以替代指针的数据类型)的值传递,替换了引用传递。所以引用传递,实质上是地址传递,别名这东西只是概念,是一种抽象,别名是没法传递的。别名,可不是真实的数据类型。因为,函数传递参数需要,数据复制,......
  • C++中模拟split
    #include<iostream>#include<sstream>usingnamespacestd;intmain(){ stringstr; getline(cin,str); istringstreamin(str); stringa; while(getline(in,a,'*')){ cout<<a<<''; } return0;}123*456*789123......
  • 蓝桥杯 基础练习 特殊回文数(C++)
    资源限制内存限制:512.0MBC/C++时间限制:1.0sJava时间限制:3.0sPython时间限制:5.0s问题描述123321是一个非常特殊的数,它从左边读和从右边读是一样的。输入一个正整数n,编程求所有这样的五位和六位十进制数,满足各位数字之和等于n。输入格式输入一行,包含一个正整......
  • C++ 不想让转义字符发挥转义的功能
    今天写代码时,编译器有一个警告:我寻思着也没啥问题,于是就看了一下警告,然后回车,就成了这样,也就是说,字符串里面的转义字符不再时转义字符而是普通的字符了,输出看看是不是:果然是这样没错.......
  • 第十四届蓝桥杯大赛青少组全国总决赛初级组C++C++题解
    第十四届蓝桥杯大赛青少组全国总决赛初级组\(C++\)题解第一题给定一个十进制正整数\(N(1≤N≤10^9)\),请从小到大输出\(1\)~\(N\)之间(含\(1\)和\(N\))所有满足以下要求的数:这个数转换为八进制后是一个回文数;这个数是一个平方数。例如:\(N=20\),在\(1\)~\(20\)之间满足要求......
  • ImportError: /lib64/libstdc++.so.6: version `CXXABI_1.3.8' not found
    [root@localhostPaddleOCR]#strings/lib64/libstdc++.so.6|grep'CXXABI'CXXABI_1.3CXXABI_1.3.1CXXABI_1.3.2CXXABI_1.3.3CXXABI_1.3.4CXXABI_1.3.5CXXABI_1.3.6CXXABI_1.3.7CXXABI_TM_1[root@localhostPaddleOCR]#find/-name"libstdc++.......
  • gdb调试c++多线程死锁问题初步
    https://blog.csdn.net/zsiming/article/details/126695393 总结:psaux|grepfilename //找出进程IDtop-HpPID //列出进程号为PID下的所有线程gdbatattchPID //用gdb调试正在运行的进程(进程号为PID)(需要sudo权限)threadapplyallbt //这里涉及2个命令:thr......
  • C++结构体对齐详解
    内存对齐是一种提高内存访问速度的策略,CPU在访问未对齐的内存可能需要经过两次的内存访问,而经过内存对齐一次就可以了cout<<"char:"<<sizeof(char)<<endl;cout<<"int:"<<sizeof(int)<<endl;cout<<"short:"<<sizeof(short)<<endl;cout&l......