llvm虚拟机和webassembly虚拟机的区别
发布网友
发布时间:2022-04-19 22:13
我来回答
共1个回答
热心网友
时间:2022-04-19 23:43
最近在Mac OS X Mountain Lion下用Xcode进行开发,发现在编译选项里有如下所示的这两种编译器:一个是Apple LLVM compiler 4.2,另外一个是LLVM GCC 4.2。
近几年一直听人说LLVM比GCC好,但是我一直没有时间研究这二者的差别。由此问题出发,我又给自己抛出了很多疑问:
cc, c89, c99是什么?有何区别?
gcc, g++, cpp, gpp又是什么?
LLVM与GCC区别大吗?
Apple LLVM compiler 4.2和LLVM GCC 4.2有何区别?
LLVM GCC 4.2到底是LLVM还是GCC?
接下来让我们一起补补历史课。
CC, C89, C99
Unix诞生之后,很多公司都开发了自己的Unix系统并且使用了自己专门的编译器。这样就导致在不同的Unix系统上,想编译C语言代码就需要使用不同的命令。于是POSIX标准Commands and Utilities中就规定了将CC作为不同编译器的统一命令接口,并且也规定了CC命令需要提供哪些必须的参数。
随着后续ISO C标准的确定,POSIX标准又规定分别将C89、C99作为ISO C的接口,而CC则继续作为非标准C的接口。但实际上后续大多数C语言编译器都实现了ISO C标准,所以POSIX标准规定后续应将CC这一历史遗留的命令取消。
GCC, G++, CPP, GPP