什么';Clang和SourceKit的区别是什么?

什么';Clang和SourceKit的区别是什么?,clang,Clang,我正在研究用于XCode的SourceKit。 特别是我从这个网页上得到了很多。 但还是有一些我认不出来的 Clang和SourceKit之间的区别是什么,或者它们之间的关系是什么?我想说的是,在您提供的链接的前几段中已经做了很多说明:SourceKit有助于创建源代码(语法突出显示、自动完成等),但是没有完全解释代码以便您可以实际使用(运行)它。Clang是为您执行后者的编译器。创建一个程序并不需要SourceKit(你可以使用基本的文本编辑器,输入源代码),但是像Clang这样的编译器是必要

我正在研究用于XCode的SourceKit。 特别是我从这个网页上得到了很多。 但还是有一些我认不出来的


Clang和SourceKit之间的区别是什么,或者它们之间的关系是什么?

我想说的是,在您提供的链接的前几段中已经做了很多说明:SourceKit有助于创建源代码(语法突出显示、自动完成等),但是没有完全解释代码以便您可以实际使用(运行)它。Clang是为您执行后者的编译器。创建一个程序并不需要SourceKit(你可以使用基本的文本编辑器,输入源代码),但是像Clang这样的编译器是必要的。所以,也许你是在问(奇特的)源代码编辑器和编译器之间的区别?@Evert Oh我可能会认识到。Clang和SourceKit都可以对源代码进行操作,如语法高亮显示、自动完成等,但只有Clang可以将源代码编译到LLVM IR。是这样吗?Clang不能操作源代码:Clang(或任何编译器)不关心语法突出显示:它接受裸字符(ASCII、Unicode)并将其编译成代码。它(根据您的链接,过去或不久将被)用于帮助语法突出显示,因为编译器会吐出错误(语法不正确),例如,它可以告诉您的编辑器将该部分标记为红色。编译器通常可以与编辑器解耦,并且可以独立运行。