You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Linux下Unreal Engine Release构建中boost::asio协程Timer不触发问题

Unreal Engine 5.7 Linux Release构建中boost::asio协程Timer挂起问题解决

问题现象

使用Unreal Engine 5.7开发游戏时,Windows平台的Debug、Release构建均可正常运行;但Linux平台下,仅纯Release构建出现异常:boost::asio网络模块的协程在co_await处挂起,Timer无法触发输出预期的Hello World日志。而Linux的Debug构建、带调试信息的Release构建均无此问题。

问题触发场景为:从依赖库中调用触发co_spawn的函数,或在Unreal项目中直接通过co_spawn调用协程时。

排查过程

针对问题进行了多轮调试尝试:

  • 给依赖库添加-fno-inline编译选项:Debug构建中Timer可正常触发,但Shipping构建仍无法工作
  • 设置OptimizeCode = CodeOptimization.Never并配合-fno-inline:Shipping构建中Timer恢复正常触发
  • 统一使用Unreal构建模块的编译选项:问题依旧存在
  • 采用源码构建方式,给依赖库和Unreal项目都添加-fno-inline:问题得到解决

最终解决方案

将所有boost::asio相关代码迁移至依赖库内部,让Unreal项目完全不需要感知boost::asio的存在,此操作后问题彻底解决。

附相关参考文件

  • 最小复现代码
  • Debug/Release构建日志
  • 系统环境信息

内容的提问来源于stack exchange,提问作者Koronis Neilos

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.01 17:14:52