系统环境Ubuntu14.04 LTS g++-4.8
1、示例代码 boost_options.cpp
#include <iostream>
using namespace std;
#include <boost/program_options.hpp>
namespace po = boost::program_options;
int main(int argc, char*argv[])
{
//int level;
po::options_description desc("Allowed options");
desc.add_options()
("help", "produce help message")
//("help,h", "produce help message")
("compression", po::value<int>(), "set compression level");
//("compression", po::value<int>(&level)->default_value(1), "set compression level");
po::variables_map vm;
po::store(po::parse_command_line(argc, argv, desc), vm);
po::notify(vm);
if(vm.count("help"))
{
cout<<desc<<endl;
return 1;
}
if(vm.count("compression"))
{
cout<<"compression level was set to "<<vm["compression"].as<int>()<<"."<<endl;
//cout<<"compression level: "<<level<<endl;
}
else
{
cout<<"compression level was not set."<<endl;
}
return 0;
}
2、说明:BOOST库大多数组件不需要编译链接,直接在自己的源码里包含相应头文件夹即可。但少量库(如chrono、date_time、regex、program_options、thread、python等),必须编译成静态库或者动态库,并在构建时指定链接选项才能使用。
program_options需要指定库文件
$g++ -I/usr/local/inlcude -L/usr/local/lib boost_options.cpp -o boost_options -lboost_program_options
$./boost_options --help
输出以下内容:
Allowed options:
–help produce help message
–compression arg set compression level
$./boost_options --compression 100
输出以下内容:
compression level was set to 100.