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

向Blink DOMWindow添加自定义成员遇链接错误求助

在DOMWindow类中添加mutable Member<InWindow> inWin_;后出现链接错误,错误指向InWindow类的虚表未定义,触发点集中在DOMWindow的析构流程中。

解决步骤

  • 补全InWindow类的必要实现
    由于InWindow继承自ScriptWrappable,必须实现Trace方法,否则会缺失虚表符号:
    void InWindow::Trace(Visitor* visitor) const {
      ScriptWrappable::Trace(visitor);
      // 若类内有其他Member成员,在此添加对应的Trace调用
    }
    
  • 将InWindow源文件加入构建系统
    在对应模块的BUILD.gn文件中,把InWindow的.cpp文件添加到sources数组,确保编译阶段包含该类的实现代码。
  • 完善DOMWindow的成员管理逻辑
    在DOMWindow的构造函数中初始化inWin_(例如inWin_ = MakeGarbageCollected<InWindow>();),同时在DOMWindow的Trace方法中添加visitor->Trace(inWin_);,保证垃圾回收机制能正确追踪该成员。
  • 检查头文件引用规范
    在DOMWindow的头文件中,要么完整包含InWindow的头文件,要么使用前向声明并在.cpp文件中补全引用,避免因类型不完整导致的链接问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 21:21:28