Boost:位置参数无法识别的选项

特鲁夫

我正在尝试使用Boost 1.58.0解析命令行。我的代码很简单,可以从教程中复制\粘贴。看起来像这样:

 try {
        po::options_description desc;
        desc.add_options()
                ("version,v", "Display version of application.");

        po::positional_options_description p;
        p.add("input-file", -1);

        try
        {
            po::store(po::command_line_parser(argc, argv).
                      options(desc).positional(p).run(), vm);

            if ( vm.count("version")  )
            {
                std::cout << "Program version: " << SHUF_T_VERSION << std::endl << "Boost library version: " << BOOST_LIB_VERSION << std::endl;
                return false;
            }

            po::notify(vm); // throws on error, so do after help in case
            // there are any problems
        }
        catch(po::error& e)
        {
            std::cerr << "ERROR: " << e.what() << std::endl << std::endl;
            std::cerr << desc << std::endl;
            return false;
        }

    }
    catch(std::exception& e)
    {
        std::cerr << "Unhandled Exception: "
                  << e.what() << ", application will now exit" << std::endl;
        return false;

    }

  return true;

整个代码在这里该代码似乎是正确的。app -v正确处理。但是,如果我有任何位置arguement,喜欢app myfilepo::store()抛出unrecognised option 'myfile'有什么想法为什么会发生?

丹尼尔·特雷比恩

您需要添加“输入文件”作为选项:

po::options_description desc;
desc.add_options()
        ("version,v", "Display version of application.")
        ("input-file", po::value<std::vector<std::string> >(), "input file");

教程

“输入文件”选项指定要处理的文件列表。一开始没关系,但是,当然要写类似:

编译器--input-file = a.cpp

编译器a.cpp

我们稍后会解决。

如上所述,没有选项名称的命令行标记被该库称为“位置选项”。它们也可以处理。在用户的一点帮助下,库可以确定“ a.cpp”的真正含义与“ --input-file = a.cpp”相同。这是我们需要的其他代码:

po::positional_options_description p;
p.add("input-file", -1);

po::variables_map vm;
po::store(po::command_line_parser(ac, av).
          options(desc).positional(p).run(), vm);
po::notify(vm);

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Google Analytics(分析)跟踪错误-无法识别的位置参数

来自分类Dev

Behat“无法识别的选项”

来自分类Dev

Avconv无法识别的选项

来自分类Dev

ffmpeg:无法识别的选项'crf'。拆分参数列表时出错:找不到选项

来自分类Dev

OpenVPN-选项错误:无法识别的选项或缺少或多余的参数(2.4.5)

来自分类Dev

无法识别的选项'-get-url'拆分参数列表时出错:找不到选项

来自分类Dev

OpenVPN-无法连接到服务器(无法识别的选项或缺少参数)

来自分类Dev

Cygwin:转换:无法识别的选项-d

来自分类Dev

gcc:错误:无法识别的选项--wrap

来自分类Dev

Kafka无法识别的VM选项'PrintGCDateStamps'

来自分类Dev

libtool:无法识别的选项-static

来自分类Dev

Eclipse:无法识别的选项:-g

来自分类Dev

“ behat”下无法识别的选项“ suites”

来自分类Dev

Git - rm:无法识别的选项`--cached'

来自分类Dev

MongoDB:“无法识别的选项:systemLog”

来自分类Dev

mpirun:无法识别的参数mca

来自分类Dev

pytest:错误:无法识别的参数:--alluredir

来自分类Dev

juju bootstrap无法识别的参数

来自分类Dev

无法识别的--schema参数sqoop工作

来自分类Dev

Python argparse“无法识别的参数”错误

来自分类Dev

无法成功显示来自某个位置参数的 bing 地图并在所识别的位置添加图钉

来自分类Dev

OpenVPN:选项错误:“ client.ovpn:130中无法识别的选项或缺少参数或额外参数:tls-remote(2.4.6)”

来自分类Dev

无法识别的选项错误:shell中的getopt命令

来自分类Dev

关于“ gcc:无法识别的选项-rdynamic”的问题

来自分类Dev

无法识别的命令行选项'-std = c ++ 11'

来自分类Dev

如何在Linux中grep'---'?grep:无法识别的选项“ ---”

来自分类Dev

ffmpeg在Heroku上:无法识别的选项'preset'

来自分类Dev

多个连接无法识别的选项“ mapping_types”

来自分类Dev

FOS \ RestBundle,Symfony2上的“无法识别的选项”

Related 相关文章

  1. 1

    Google Analytics(分析)跟踪错误-无法识别的位置参数

  2. 2

    Behat“无法识别的选项”

  3. 3

    Avconv无法识别的选项

  4. 4

    ffmpeg:无法识别的选项'crf'。拆分参数列表时出错:找不到选项

  5. 5

    OpenVPN-选项错误:无法识别的选项或缺少或多余的参数(2.4.5)

  6. 6

    无法识别的选项'-get-url'拆分参数列表时出错:找不到选项

  7. 7

    OpenVPN-无法连接到服务器(无法识别的选项或缺少参数)

  8. 8

    Cygwin:转换:无法识别的选项-d

  9. 9

    gcc:错误:无法识别的选项--wrap

  10. 10

    Kafka无法识别的VM选项'PrintGCDateStamps'

  11. 11

    libtool:无法识别的选项-static

  12. 12

    Eclipse:无法识别的选项:-g

  13. 13

    “ behat”下无法识别的选项“ suites”

  14. 14

    Git - rm:无法识别的选项`--cached'

  15. 15

    MongoDB:“无法识别的选项:systemLog”

  16. 16

    mpirun:无法识别的参数mca

  17. 17

    pytest:错误:无法识别的参数:--alluredir

  18. 18

    juju bootstrap无法识别的参数

  19. 19

    无法识别的--schema参数sqoop工作

  20. 20

    Python argparse“无法识别的参数”错误

  21. 21

    无法成功显示来自某个位置参数的 bing 地图并在所识别的位置添加图钉

  22. 22

    OpenVPN:选项错误:“ client.ovpn:130中无法识别的选项或缺少参数或额外参数:tls-remote(2.4.6)”

  23. 23

    无法识别的选项错误:shell中的getopt命令

  24. 24

    关于“ gcc:无法识别的选项-rdynamic”的问题

  25. 25

    无法识别的命令行选项'-std = c ++ 11'

  26. 26

    如何在Linux中grep'---'?grep:无法识别的选项“ ---”

  27. 27

    ffmpeg在Heroku上:无法识别的选项'preset'

  28. 28

    多个连接无法识别的选项“ mapping_types”

  29. 29

    FOS \ RestBundle,Symfony2上的“无法识别的选项”

热门标签

归档