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

发布于 2024-12-03 09:53:16 字数 510 浏览 2 评论 0原文

我一直在将 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%)

I've been porting a C++ program from Linux to Cygwin on Windows, and am having trouble with Boost Program Options (Boost 1.43). The program compiles and runs fine on Linux (Boost 1.44), but hangs under 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);

Any ideas? I can provide more information if needed.
(If I had to guess, it's I/O blocked, as the CPU use sits at 0% here)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

勿忘初心 2024-12-10 09:53:16

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

但有一点警告:无论黑客多么聪明,有些东西就是无法有效地移植到 linux->cygwin。在某个时刻,您需要问自己,在 Windows 上重写所有内容是否真的可以节省时间。

If I were you, I would go through it using GDB.

A word of warning though: Some things just can't be efficiently ported linux->cygwin, no matter how clever the hacking is. At a certain point, you need to ask yourself if it would actually save time to just rewrite it all on Windows.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文