当前位置: 首页 > news >正文

Unity WebGL平台Hybrid Generate All报错undefined symbol sendfile

详细报错信息如下:

Library\Bee\artifacts\WebGL\build\debug_WebGL_wasm\build.js: undefined symbol: sendfile (referenced by top-level compiled C/C++ code)
UnityEditor.BuildPipeline:BuildPlayer (UnityEditor.BuildPlayerOptions)
HybridCLR.Editor.Commands.StripAOTDllCommand:GenerateStripedAOTDlls (UnityEditor.BuildTarget) (at Library/PackageCache/com.code-philosophy.hybridclr@3705ca6e1f/Editor/Commands/StripAOTDllCommand.cs:144)

这个报错一般是网络socket接口的问题。WebGL限制了不能使用C# System.Net.*命名空间,要定位到这个函数,可以在Library\Bee下搜索sendfile关键词。
在这里插入图片描述

在il2cppOutput目录下的即可找到相关函数。

  • Il2CppInteropDataTable.cpp中可以搜索到:
{ DelegatePInvokeWrapper_SendFileHandler_tFBB94763A61E5EC1AF7F81EC6F05F460B913B902, NULL, NULL, NULL, NULL, NULL, &SendFileHandler_tFBB94763A61E5EC1AF7F81EC6F05F460B913B902_0_0_0 } /* System.Net.Sockets.Socket/SendFileHandler */,
  • System4.cpp中可以搜索到:
// System.Boolean System.Net.Sockets.Socket::SendFile_internal(System.Net.Sockets.SafeSocketHandle,System.String,System.Byte[],System.Byte[],System.Net.Sockets.TransmitFileOptions,System.Int32&,System.Boolean)
IL2CPP_EXTERN_C IL2CPP_METHOD_ATTR bool Socket_SendFile_internal_m8EC495EAD620E62F58D9A3E9E1FA560D3D232128 (SafeSocketHandle_t5A597D30D951E736B750ED09D5B3AB72F98407EE* ___safeHandle0, String_t* ___filename1, ByteU5BU5D_tA6237BF417AE52AD70CFB4EF24A7A82613DF9031* ___pre_buffer2, ByteU5BU5D_tA6237BF417AE52AD70CFB4EF24A7A82613DF9031* ___post_buffer3, int32_t ___flags4, int32_t* ___error5, bool ___blocking6, const RuntimeMethod* method) ;

可以看到SendFile方法为System.Net.Sockets.Soket下的方法。由于笔者是WebGL项目,也确实没有用到这部分代码,于是在Hybrid的Link.xml中把System.Net.Sockets相关的都删除了,再Generate,一切顺利(当然这些都是通过写工具来实现自动化)。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 大语言模型与多模态大模型loss计算
  • Gin框架接入pyroscope完美替代pprof实现检测内存泄露
  • 离职保密协议是什么?怎么样才是合法的?如何维护公司权益?
  • DataGear 企业版 1.2.0 发布,数据可视化分析平台
  • django常用的组合搜索组件
  • 【区块链+金融服务】山西省信易贷平台 | FISCO BCOS应用案例
  • redis面试(九)锁重入和互斥
  • 基于PCA-BP的数据多变量回归预测 Matlab代码(多输入单输出)[可显示原始特征贡献率+贡献率排序+累计贡献率]
  • 【Git】远程仓库新建分支后,拉到本地开发
  • 音视频概要
  • 主机防火墙测试--IPV6地址TCP/UDP/ICMP协议测试方法
  • 应对FingerprintJS反爬:Selenium的破解策略与技术详解
  • 【零基础学习CAPL语法】——TestWaitForMessage:等待指定报文
  • MongoDB教程
  • Elasticsearch 桶(Bucket)聚合详解及示例
  • C学习-枚举(九)
  • hadoop入门学习教程--DKHadoop完整安装步骤
  • Java到底能干嘛?
  • MySQL几个简单SQL的优化
  • Netty源码解析1-Buffer
  • niucms就是以城市为分割单位,在上面 小区/乡村/同城论坛+58+团购
  • Redux系列x:源码分析
  • spring boot 整合mybatis 无法输出sql的问题
  • 不用申请服务号就可以开发微信支付/支付宝/QQ钱包支付!附:直接可用的代码+demo...
  • 如何使用 OAuth 2.0 将 LinkedIn 集成入 iOS 应用
  • 微信小程序开发问题汇总
  • [地铁译]使用SSD缓存应用数据——Moneta项目: 低成本优化的下一代EVCache ...
  • 蚂蚁金服CTO程立:真正的技术革命才刚刚开始
  • ​LeetCode解法汇总1410. HTML 实体解析器
  • ​MPV,汽车产品里一个特殊品类的进化过程
  • #100天计划# 2013年9月29日
  • #知识分享#笔记#学习方法
  • (3)选择元素——(14)接触DOM元素(Accessing DOM elements)
  • (delphi11最新学习资料) Object Pascal 学习笔记---第8章第2节(共同的基类)
  • (Pytorch框架)神经网络输出维度调试,做出我们自己的网络来!!(详细教程~)
  • (附源码)springboot太原学院贫困生申请管理系统 毕业设计 101517
  • (附源码)ssm智慧社区管理系统 毕业设计 101635
  • (附源码)计算机毕业设计ssm-Java网名推荐系统
  • (论文阅读26/100)Weakly-supervised learning with convolutional neural networks
  • (亲测)设​置​m​y​e​c​l​i​p​s​e​打​开​默​认​工​作​空​间...
  • (三)uboot源码分析
  • (收藏)Git和Repo扫盲——如何取得Android源代码
  • (算法)硬币问题
  • (原創) 如何使用ISO C++讀寫BMP圖檔? (C/C++) (Image Processing)
  • (转)C#开发微信门户及应用(1)--开始使用微信接口
  • (最优化理论与方法)第二章最优化所需基础知识-第三节:重要凸集举例
  • .cn根服务器被攻击之后
  • .net 打包工具_pyinstaller打包的exe太大?你需要站在巨人的肩膀上-VC++才是王道
  • .net 后台导出excel ,word
  • .NET 使用 ILRepack 合并多个程序集(替代 ILMerge),避免引入额外的依赖
  • .net 重复调用webservice_Java RMI 远程调用详解,优劣势说明
  • .net知识和学习方法系列(二十一)CLR-枚举
  • @AliasFor注解
  • @Builder注释导致@RequestBody的前端json反序列化失败,HTTP400
  • @FeignClient注解,fallback和fallbackFactory