打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
C#可以被编译成本地二进制代码么?
C#可以被编译成本地二进制代码么?
可以,只有mono支持。先用mcs或者csc编译成assembly, 再mono --aot 你的assembly, 就可以的。
但是这样的话,默认还是需要原始assembly里面的meta data, 你需要再处理一下你的assembly, 让它变成空壳(也就是只有函数的声明,而没有IL代码,怎么处理,自己想办法:) ), 这样的话。你的IL可以完全被隐藏。不过缺点是,这样生成的native code只能在mono环境下运行。
  
在FreeBSD/Linux下,你可以直接做aot(ahead-of-time,相对just-in-time), 但是在windows下,你需要动点脑筋了。需要cygwin和gcc才可以的。因为mono在aot的时候,是需要将IL转化为汇编,进一步由gcc里面的汇编器来产生binary code的。为什么只能用gcc里面的汇编器,因为mono产生的汇编代码是at&t格式的,而VS里面的汇编器只认Intel格式的。


本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
你真的懂''Hello world''吗?从编译器到OS内核系列:编译器基本概念
深入理解编译系统
手撕汇编实战(编译完成之后是汇编阶段汇编器会把hello.s翻译成机器指令打包成可重定位的二进制程序放在hello.c文件中)
对 u3d 项目生成的Dll进行加密
从Mono、.NET Core 说起(下)
用Unity做游戏,你需要深入了解一下IL2CPP
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服