Building是由编译和链接组成的序列。
在.NET中,源代码被编译到包含公共中间语言和类型信息的程序集中。在运行时,JIT编译器将CIL代码转换为本机代码。
我不明白,在.NET中,链接是如何以及何时发生的。
有人可以解释一下这个过程吗?
提前致谢
答案 0 :(得分:7)
在C ++方面没有任何联系。
我的意思是,没有任何中间的“obj”/“lib”文件,可以在以后分发和链接到另一个“obj”文件。对程序集的引用总是具有动态行为(总是动态链接库),而不是C ++静态链接。
之类的链接是.netmodule
的创建。您可以使用编译器将.NET源代码构建到.netmodule
而不是汇编(查看here,尤其是部分"Differences Between C# Compiler and C++ Compiler Output"),稍后您可以将这些模块链接到一个程序集中(请参阅{ {3}})。
但这是不常见的做法 - 大多数程序集包含单个模块,并且这项工作(源 - >模块 - >程序集)已由幕后的编译器(例如,csc.exe
)完成。此外,我记不起任何产品被重新分发为一组.netmodule
(而不是一组程序集)。