【问题标题】:Blank program does not exit on linking in Windows空白程序在 Windows 中链接时不退出
【发布时间】:2020-11-10 23:10:59
【问题描述】:

我一直在尝试在 Windows 上编译 ndn-cxx,并在 MSVC 和 mingw64 上得到以下非常奇怪的行为(在 Linux 和 Mac 上一切正常)。

程序从main()返回后,控制台卡住了。在 mingw64 bash 下,Ctrl+C 关闭程序,但这在 Powershell 中不起作用。更有趣的是,当我尝试在 Sysinternals Process Explorer 中查看程序的线程时,程序会按预期正常关闭。

即使是链接到其他文件的空白main.cpp 也会表现出相同的行为。一个普通的 hello world 按预期工作。

编辑:该项目使用 boost(特别是 asio 可能与此有关?)、openssl 和 sqlite 作为唯一的库

【问题讨论】:

  • 如果存在具体的 exe 很容易找到它并说出原因和原因。
  • @RbMm 什么? ...
  • 如果您上传的 exe 不退出 - 很容易运行它并说明原因。没有二进制代码,仅基于您的信息 - 不确定可能说出原因

标签: c++ windows visual-c++ mingw


【解决方案1】:

原来这是由于boost::log::sinks::asynchronous_sink 产生的死锁,可能是 Boost 或 Windows 中的错误。切换到synchronous_sink 可以解决此问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多