我正在尝试编译代码,但出现错误
未定义的引用
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 许可协议
我遇到了同样的问题并且挣扎了很长时间,但没有任何效果……但修复非常简单。
首先,执行
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
并且没有任何工作,我找不到一个修复程序(并且我遇到了帖子中提到的确切错误)。这是我生命中浪费的两天,我真的希望有人会偶然发现这个回复并为自己省点麻烦。