gcc是java的什么意思_为什么gcc支持Java而不是C#

我已经seen this question了,我想知道是否有任何技术理由可以证明gcc支持Java但不支持C#.如果我理解,Java也是一种解释性语言.如果Mono提供C#编译器和CIL的实现,为什么不能创建一个将C#转换为IL然后静态编译的gcc c#编译器?

解决方法:

如果编译器工具链不支持特定语言,那通常是因为目前对该语言没有足够的兴趣.所以,这本身并不是技术上的原因 – 只是因为他们现在不想浪费开发人员的时间.

理论上,C#在理论上不能作为静态编译语言实现,这没有特别的技术原因.然而,在实践中,泛型是C#的核心优势之一,但不幸的是,由于泛型在这种特定语言中的工作方式,它们的任何有效实现通常都会从JIT编译器的存在中获益良多.在C#中定义泛型类型时,可以有效地获取所有具体类型的机器代码,其中类型参数是类,每个使用的结构类型都有一个机器代码.但是,当您尝试跨另一个二进制文件创建新的具体类型时,您最有可能创建这些类型参数所需的新机器代码片段是一个JIT编译器.

如果您对使用C#创建静态链接程序感兴趣(而不是专门用于gcc),那么Mono确实提供了一个工具(我认为称为mkbundle),它允许您从C#代码创建完全独立的二进制文件.

标签:c,gcc

来源: https://codeday.me/bug/20190717/1490460.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值