Windows 下有 msvc
Mac 下有 clang
Linux 下有 gcc
那么,像 FreeBSD
、NetBSD
这些用什么?gcc?clang?
这两篇文章的跨度居然高达 9 年????
Windows 下有 msvc
Mac 下有 clang
Linux 下有 gcc
那么,像 FreeBSD
、NetBSD
这些用什么?gcc?clang?
这两篇文章的跨度居然高达 9 年????
7 回答5.3k 阅读
3 回答2k 阅读✓ 已解决
4 回答4k 阅读
2 回答3.9k 阅读✓ 已解决
2 回答5.9k 阅读✓ 已解决
2 回答3.2k 阅读✓ 已解决
1 回答3.2k 阅读✓ 已解决
以 FreeBSD 为例,最早内置的是 gcc。
从 FreeBSD 9.0 (2012 年)开始引入了 clang、但没有作为默认项,并且发行版本身还是继续使用 gcc 编译。
从 FreeBSD 10.0 (2014 年)开始使用 clang 作为默认项,并且 x86、x64 架构发行版使用了 clang 编译内核(注意仅仅是编译内核,因为生态内大量的依赖软件出于种种原因并不能完全放弃 gcc)。此时 gcc 还是保留的,特殊架构(比如 ARM、MIPS)和周边生态还是会依赖于此。
再之后的版本就是逐渐从 gcc 过渡到 clang 的过程,不展开了。
从 FreeBSD 13.0 (2021 年)开始所有架构的发行版都开始使用 clang 编译,彻底移除了 gcc。但你仍可以通过 ports 自行安装 gcc。
而且需要注意的是 2007 年以后的发行版内置的 gcc 万年不变都是 4.2.1(更高版本的由于许可协议 GPLv2 变为 GPLv3,带来了很多商业上的问题,这里不展开了)。所以现在推荐的都是 clang。