问题描述
我一直在尝试在Windows上编译ndn-cxx
,并且在MSVC和mingw64上都得到以下非常奇怪的行为(在Linux和Mac上一切正常)。
程序从main()
返回后,控制台卡住了。在mingw64 bash下,按Ctrl + C可以关闭程序,但这在Powershell中不起作用。更有趣的是,当我尝试在Sysinternals Process Explorer中查看程序的线程时,该程序会按预期正常关闭。
即使与其他文件链接的空白main.cpp
也表现出相同的行为。普通的hello世界按预期工作。
编辑:该项目使用boost(尤其是asio可能与此相关?),openssl和sqlite作为唯一的库
解决方法
事实证明,这是由于boost::log::sinks::asynchronous_sink
产生的死锁所致,可能是Boost或Windows中的错误。切换到synchronous_sink
可以解决此问题。