对\`boost::program_options::options_description::m_default_line_length'的未定义引用

新手上路,请多包涵

我正在尝试编译代码,但出现错误

未定义的引用 boost::program_options::options_description::m_default_line_length

我在 Ubuntu 12.04 中使用 g++。虽然我做过一些 C++ 编程,但我对 Linux 开发环境还是新手(以前只使用过 IDE)。

所以我对这个问题进行了基本搜索,发现了一些链接问题。我不太了解他们,因为我是新手。阅读其中一些解决方案让我更加困惑。我的 boost 库文件夹位于 /usr/include 中。一些解决方案说它应该在 /usr/lib 。但我那里没有任何 boost 文件夹。

我需要改变什么?

原文由 Picowhat 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 426
1 个回答

我遇到了同样的问题并且挣扎了很长时间,但没有任何效果……但修复非常简单。

首先,执行 apt install libboost-all-dev 。完成后,执行 whereis libboost_program_options 应该会产生类似于

libboost_program_options: /usr/lib/x86_64-linux-gnu/libboost_program_options.so /usr/lib/x86_64-linux-gnu/libboost_program_options.a

一旦完成(我知道这很愚蠢,但是)确保以正确的顺序链接库,即在源文件之后。

就我而言,我正在执行 g++ -lboost_program_options main.cpp 而不是 g++ main.cpp -lboost_program_options 并且没有任何工作,我找不到一个修复程序(并且我遇到了帖子中提到的确切错误)。这是我生命中浪费的两天,我真的希望有人会偶然发现这个回复并为自己省点麻烦。

原文由 Maurycyt 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题