【问题标题】:C++ boost errorC++ 提升错误
【发布时间】:2015-04-07 14:56:00
【问题描述】:

我正在基于此fast factorial library 构建代码,它依赖于 boost 和 mpir。我正在运行 Ubuntu 14.04 并使用 Netbeans 8.0.2。为了简单地测试库的 #include 语句,我编写了这个愚蠢的代码:

#include <iostream>
#include <mpir.h>
#include <primeswing.h>
#include <xmath.h>
 /*
 * 
 */
int main() {
    long x = 4;
    std::cout << x;
    return 0;
}

当我尝试编译它时,我收到以下错误

"/usr/bin/make" -f nbproject/Makefile-Debug.mk QMAKE= SUBPROJECTS= .build-conf
make[1]: Entering directory `/home/arengorn/NetBeansProjects/BA'
"/usr/bin/make"  -f nbproject/Makefile-Debug.mk dist/Debug/GNU-Linux-x86/ba
make[2]: Entering directory `/home/arengorn/NetBeansProjects/BA'
mkdir -p dist/Debug/GNU-Linux-x86
g++     -o dist/Debug/GNU-Linux-x86/ba build/Debug/GNU-Linux-x86/main.o ->lm
build/Debug/GNU-Linux-x86/main.o: In function `__static_initialization_and_destruction_0':
/usr/include/boost/system/error_code.hpp:222: undefined reference to `boost::system::generic_category()'
/usr/include/boost/system/error_code.hpp:223: undefined reference to `boost::system::generic_category()'
/usr/include/boost/system/error_code.hpp:224: undefined reference to `boost::system::system_category()'
collect2: error: ld returned 1 exit status
make[2]: *** [dist/Debug/GNU-Linux-x86/ba] Error 1
make[2]: Leaving directory `/home/arengorn/NetBeansProjects/BA'
make[1]: *** [.build-conf] Error 2
make[1]: Leaving directory `/home/arengorn/NetBeansProjects/BA'
make: *** [.build-impl] Error 2

BUILD FAILED (exit value 2, total time: 114ms)

谁能帮我解释为什么 boost 库(安装并存在于 /usr/include 下)不起作用?

【问题讨论】:

  • 您需要链接libboost_system.so。将 -lboost_system 放入链接器标志中。

标签: c++ linux boost build


【解决方案1】:

正如温特穆特所说的

您需要链接 libboost_system.so。将 -lboost_system 放入链接器标志中。

这解决了问题。

【讨论】:

  • 链接到 libboost_system.a 还不够吗?还是它也需要 .so 文件?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-01-21
  • 2012-05-16
  • 2018-04-19
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多