在Cygwin下使用Boost程序选项挂起

Hang using Boost Program Options under Cygwin

本文关键字:程序 选项 挂起 Boost Cygwin      更新时间:2023-10-16

我一直在将c++程序从Linux移植到Windows上的Cygwin,并且在Boost程序选项(Boost 1.43)方面遇到麻烦。该程序在Linux (Boost 1.44)上编译和运行良好,但在Cygwin下挂起:

/* prints */
std::cout << "positional options" << std::endl;
variables_map v;
store(command_line_parser(argc, argv)
    .options(o).positional(p).allow_unregistered().run(), v);
/* never prints */  
std::cout << "stored vars" << std::endl;
notify(v);

任何想法?如果需要,我可以提供更多的信息。(如果我必须猜测,它是I/O阻塞,因为CPU使用率在这里为0%)

如果我是你,我会使用GDB来完成它。

一个警告:有些东西就是不能有效地移植linux->cygwin,不管黑客有多聪明。在某种程度上,你需要问问自己,在Windows上重写所有内容是否真的会节省时间。