系统:macos
原本机器安装的boost1.60,因为之前在做bitshares的相关开发,这次要编译eos,boost要求1.67以上,于是直接找出以前的boost安装方法装了1.67,也没想着要卸载原来的。装好后编译eos源码也正常,但是最后执行却总是报错segmentfault 11,最后整理出来一段与错误相关的的代码如下(这段代码是调试的时候从某个博客上找的,一时找不到链接了(侵删),其实boost文档里也有类似的示例):
int main(int arc, char** arg)
{
bpo::options_description opts("all options");
//选项存储器,继承自map容器
bpo::variables_map vm;
//步骤二: 为选项描述器增加选项
//其参数依次为: key, value的类型,该选项的描述
opts.add_options()
("config", bpo::value<std::string>(), "the file name which want to be found")
("help", "this is a program to find a specified file")
("a",bpo::value<int>(),"hh");
//步骤三: 先对命令行输入的参数做解析,而后将其存入选项存储器
//如果输入了未定义的选项,程序会抛出异常,所以对解析代码要用try-catch块包围
try{
//parse_command_line()对输入的选项做解析
//store()将解析后的结果存入选项存储器