【问题标题】:c++ and mongodb - can't compile - undefined reference to `boost::system::generic_category()c++ 和 mongodb - 无法编译 - 对`boost::system::generic_category() 的未定义引用
【发布时间】:2012-02-10 21:37:44
【问题描述】:

我第一次尝试在 C++ 中使用 mongodb。我刚刚在 Ubuntu 上安装了最新版本,还安装了最新的 v2.0 c++ 驱动程序代码。它使用 scons 编译得很好。在 c++ 文件中,以下是我的包含。

#include <client/dbclient.h>

所以..我假设我必须对 boost 库进行引用,但我不知道该怎么做。

make all 
Building target: rtb
Invoking: GCC C++ Linker
g++ -L/usr/local/include/ -L/home/boost -L/home/cpp/mongo-cxx-driver-v2.0/mongo -lfcgi++ -o"rtb"  ./src/rtb.o   
./src/rtb.o: In function `__static_initialization_and_destruction_0':
/home/boost/boost/system/error_code.hpp:214: undefined reference to `boost::system::generic_category()'
/home/boost/boost/system/error_code.hpp:215: undefined reference to `boost::system::generic_category()'
/home/boost/boost/system/error_code.hpp:216: undefined reference to `boost::system::system_category()'
collect2: ld returned 1 exit status
make: *** [rtb] Error 1

【问题讨论】:

标签: c++ mongodb boost


【解决方案1】:

-lboost_system 添加到您的链接行。

【讨论】:

  • g++ -L/usr/local/include/ -L/home/boost -L/home/cpp/mongo-cxx-driver-v2.0/mongo -lfcgi++ -lboost_system -o"rtb " ./src/rtb.o 我仍然得到同样的错误
  • 嗯,这对我来说没有多大意义...也许尝试对您的 libboost_system 副本运行objdump -x 并查看您缺少的符号是否确实存在。接下来,尝试在您的make 链接步骤上运行strace,看看它是否确实打开了您的objdump'd。
  • 尝试将 ./src/rtb.o 放在 -lboost_system 之前。
猜你喜欢
  • 2012-11-08
  • 2021-05-16
  • 2013-08-14
  • 1970-01-01
  • 2016-05-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多