赞
踩
cmdline 是一个非常easy好用的C++命令行解析库,其基于模板。所以使用非常easy,写出的代码也非常优雅。
因为其仅仅包括一个头文件。所以非常easy集成到自己的项目中。
官网:https://github.com/tanakh/cmdline
参考:http://www.mamicode.com/info-detail-1923374.html
在window上利用VS编译的时候遇到问题汇总。
fatal error C1083: 无法打开包括文件:“cxxabi.h”: No such file or directory
需要修改的地方
- //当编译器非gcc时,不包含cxxabi.h头文件
- #ifdef __GNUC__
- #include <cxxabi.h>
- #endif
-
- static inline std::string demangle(const std::string &name)
- {
- #ifdef _MSC_VER
- return name; // 为MSVC编译器时直接返回name
- #elif defined(__GNUC__)
- // 为gcc编译器时还调用原来的代码
- int status=0;
- char *p=abi::__cxa_demangle(name.c_str(), 0, 0, &status);
- std::string ret(p);
- free(p);
- return ret;
- #else
- // 其他不支持的编译器需要自己实现这个方法
- #error unexpected c complier (msc/gcc), Need to implement this method for demangle
- #endif
- }
参考https://github.com/tanakh/cmdline/issues/6
error C2589: '(' : illegal token on right side of '::'
error C2143: syntax error : missing ';' before '::'
解决方式(两种)修改如下面
max_width = (std::max)(max_width, (ordered[i]->name().length()));
max_width=std::max< size_t>(max_width, ordered[i]->name().length());
参考 https://github.com/tanakh/cmdline/issues/13
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。