BSD 系统用的什么 c 编译器?

Windows 下有 msvc
Mac 下有 clang
Linux 下有 gcc

那么,像 FreeBSDNetBSD 这些用什么?gcc?clang?


这两篇文章的跨度居然高达 9 年????

图片.png

阅读 2.9k
2 个回答

以 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。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题