Welcome 微信登录

首页 / 数据库 / MySQL / 编写简单的连接MongoDB数据库C++程序 && 解决编译C++程序时链接MongoDB动态库失败的问题

编写简单的连接MongoDB数据库C++程序 && 解决编译C++程序时链接MongoDB动态库失败的问题。一. 安装好mongo数据库以后,创建一个用来链接数据库的简单C++程序mon2.cpp,发现很多网站都用这个程序做示例。不过重点在于如何让这个程序真正可以跑起来显示出来结果,着实费了一番功夫。 1 #include <iostream>
2 #include "client/dbclient.h"
3
4 using namespace mongo;
5 using namespace std;
6 void run() {
7 DBClientConnection c;
8 c.connect("localhost");
9 }
10
11 int main() {
12 try {
13 run();
14 cout << "connected ok" << endl;
15 } catch( DBException &e ) {
16 cout << "caught " << e.what() << endl;
17 }
18 return 0;
19 }在终端输入“g++ mon2.cpp -I /usr/include/mongo/ /usr/lib/libmongoclient.a -lboost_thread -lboost_filesystem -lboost_program_options”进行编译C++程序。”-lboost_thread -lboost_filesystem -lboost_program_options“这三个是编译关于mongo的C++程序需要用到的动态库,问题往往出现在这里,涉及到数据库的程序编译不通过,八成是找不到对应的动态库文件。常见的错误如下图所示:二. 解决编译C++程序时链接mongo的动态库失败的问题最简单的解决办法:在root用户下,首先进入mongo的库目录(我的路径是"/usr/lib"),然后在终端输入"ls -al | grep libboost"查找相应的动态链接库文件,如果找不到以".so"结尾文件,则拷贝("cp 源文件 目标文件")下面显示的七个动态库到当前目录,并且命名为"xxx.so" ,或者创建这七个动态库的软链接到当然目录(会在下面提到)。然后修改"/etc/ld.so.conf"文件,增加一行刚才存放.so文件的目录的地址,如下图则增加一行"/usr/lib"保存完以后,运行"ldconfig"命令使配置生效。(OVER)以上已经达到了可以运行编译的条件。
  • 1
  • 2
  • 下一页
MongoDB副本集Python Sqlite3数据库相关操作相关资讯      MongoDB 
  • MongoDB 3.3.0 发布下载  (01月14日)
  • 使用MongoDB C#官方驱动操作  (12/31/2015 16:27:56)
  • CentOS 6.6下安装MongoDB 3.0.1  (12/21/2015 19:29:02)
  • MongoDB 3.2版WiredTiger存储引擎  (01月02日)
  • 进程监控工具Supervisor 启动  (12/26/2015 10:49:57)
  • MongoDB 3.2.1 RC0 发布下载  (12/18/2015 11:32:29)
本文评论 查看全部评论 (0)
表情: 姓名: 字数