【发布时间】:2017-01-28 04:47:30
【问题描述】:
我有这个文件
#include <boost/program_options.hpp>
namespace po = boost::program_options;
#include <iostream>
using namespace std;
int main(int ac, char* av[])
{
try {
po::options_description desc("Allowed options");
desc.add_options()
("help", "produce help message")
;
}
catch(exception& e) {
cerr << "error: " << e.what() << "\n";
return 1;
}
catch(...) {
cerr << "Exception of unknown type!\n";
}
return 0;
}
现在我尝试这样编译:
g++ -I /usr/include/boost/ -I /usr/include/boost/program_options main.cpp -L /usr/lib/x86_64-linux-gnu/ -lboost_program_options
我收到了这个
未定义的引用 `boost::program_options::options_description::options_description(std::__cxx11::basic_string, std::allocator > const&, unsigned int, 无符号整数)'
我不知道它为什么会失败,库在那里,头文件也在那里。出了什么问题?我正在使用 boost 1.55.0
administrator@administrator-VirtualBox:~/l/b$ sudo updatedb
administrator@administrator-VirtualBox:~/l/b$ locate libboost_program_options
/usr/lib/x86_64-linux-gnu/libboost_program_options.a
/usr/lib/x86_64-linux-gnu/libboost_program_options.so
/usr/lib/x86_64-linux-gnu/libboost_program_options.so.1.55.0
【问题讨论】:
-
你能先写一个
sudo updatedb,然后写一个locate libboost_program_options,然后粘贴后者的结果吗? -
请查看更新后的问题
-
看起来不错。对不起,我不知道。祝你好运。