来自
phoronix 的消息称,根据
FreeBSD 2012 第一季度的状态报告 显示,来自 LLVM 的 Clang 编译器将成为 FreeBSD 10 的默认 C/C++ 编译器,废弃使用 GPL 授权协议的 GCC,而 Clang 的授权协议是 BSD。
Clang 是一个 C++ 编写、基于 LLVM、发布于 LLVM BSD 许可证下的 C/C++/Objective C/Objective C++ 编译器,其目标(之一)就是超越 GCC。
Clang 开发事出有因,Wiki 介绍如下:
- Apple 使用 LLVM 在不支持全部 OpenGL 特性的 GPU (Intel 低端显卡) 上生成代码 (JIT),令程序仍然能够正常运行。之后 LLVM 与 GCC 的集成过程引发了一些不快,GCC 系统庞大而笨重,而 Apple 大量使用的 Objective-C 在 GCC 中优先级很低。此外 GCC 作为一个纯粹的编译系统,与 IDE 配合很差。加之许可证方面的要求,Apple 无法使用修改版的 GCC 而闭源。于是 Apple 决定从零开始写 C family 的前端,也就是基于 LLVM
的 Clang 了。
Clang 的特性:
- 快:通过编译 OS X 上几乎包含了所有 C 头文件的 carbon.h 的测试,包括预处理 (Preprocess),语法 (lex),解析 (parse),语义分析 (Semantic Analysis),抽象语法树生成 (Abstract Syntax Tree) 的时间,Clang 是 Apple GCC 4.0 的 2.5x 快。
- 内存占用小:Clang 内存占用是源码的 130%,Apple GCC 则超过 10x。
- 诊断信息可读性强:(推荐去网站观看)其中错误的语法不但有源码提示,还会在错误的调用和相关上下文的下方有~~~~~和^的提示,相比之下 GCC 的提示犹如天书。
- 和GCC的兼容性。
- 设计清晰简单,容易理解,易于扩展增强。与代码基础古老的 GCC 相比,学习曲线平缓。
- 基于库的模块化设计,易于 IDE 集成及其他用途的重用。由于历史遗留原因,GCC 只是一个单一的可执行程序编译器,其内部完成了从预处理到最后代码生成的全部过程,中间诸多信息都无法被其他程序重用。Clang 将编译过程分成彼此分离的几个阶段,AST 信息可序列化。通过库的支持,程序能够获取到 AST 级别的信息,将大大增强对于代码的操控能力。对于 IDE 而言,代码补全、重构是重要的功能,然而如果没有底层的支持,只使用 tags 分析或是正则表达式匹配是很难达成的。
更多关于Clang的详细信息,或者下载地址请点这里
本文转载自:
开源中国
分享到:
相关推荐
7. **安装和配置**:在Mac OS X上安装GCC 4.9通常需要使用Homebrew或其他包管理器,因为Apple默认提供的Clang编译器可能不包含GCC的所有功能。安装后,可以通过设置环境变量或修改Makefile来选择使用GCC 4.9编译项目...
设置一个有效的开发环境,包括编译器(GCC或Clang)、构建系统(Makefile、Portsystem)、调试器、版本控制系统(Git)等,能够提高开发效率。 综上所述,FreeBSD系统编程涉及多个层次的技术和概念,从底层硬件到...
可以使用“make”构建项目,通过“gcc”或“clang”编译代码。此外,FreeBSD还支持多种数据库系统,如MySQL、PostgreSQL,以及Perl、Python、Ruby等编程语言。 **10. 容器技术** FreeBSD的jail技术是一种轻量级的...
一个GCC插件,它以输出编译器参数。 它试图模拟-MJ参数对clang的作用。...将使用该插件的TARGET_GCC目标编译器。 CC编译器来编译插件。 CXX编译器来编译插件。 pkg-config查找依赖项。 GMP库。 GCC要求它。
DragonEgg 是一个 GCC 插件,它将 GCC 的前端输出转换为 LLVM IR,从而允许使用 LLVM 后端进行优化和代码生成。通过 DragonEgg,开发者可以在保持对 GCC 工具链的兼容性的同时,利用 LLVM 的优势。LLVM 测试套件包含...
要构建,您将需要 GCC 或 Apple CLang 编译器。 CMake 用于配置管理。 支持 3 种标准 CMake 构建类型: 调试——由项目维护者使用RelWithDebugInfo -- 最常见的发布配置,也提供调试功能发布——仅在需要最高性能时...
1. **跨平台支持**:qmake 支持多种操作系统(如 Windows、Linux、macOS 等)和编译器(如 GCC、Clang、MSVC 等)。 2. **简化构建过程**:通过使用 .pro 文件,开发者可以轻松管理项目的源代码、头文件和其他构建...
安装您只需要安装automake,autoconf,libtool和C编译器(gcc或clang)来编译库,并安装asciidoc和xml来生成文档(可选)。 要安装,只需运行通常的舞蹈, ./configure && make install 。 如果需要,请首先运行./...
2. GCC替换:在i386和AMD64架构上,GCC被CLANG替换,CLANG作为编译器提供了更快的编译速度和更好的错误报告。 3. Raspberry Pi支持:新版本可以运行在Raspberry Pi硬件上,扩展了FreeBSD的应用场景。 4. ARMv6/v7...
过去经过测试的编译器包括所有支持的体系结构中的gcc,clang,cygwin,icc,mingw32,mingw64和suncc。 所有新架构都需要通过集成测试和进行大量的代码审查。 当前为以下目标启用了持续集成: darwin/clang/x86-...
7. **开发工具**:FreeBSD倾向于使用GCC以外的编译器Clang,而Linux更常见的是GCC。此外,FreeBSD的调试工具(如GDB)可能会有所不同。 8. **安全特性**:FreeBSD提供了名为Jail的容器技术,而Linux有KVM、LXC和...
tmux是一个终端多路复用器:它使从单个屏幕创建,访问和控制多个终端成为可能。... 要构建tmux,需要使用C编译器(例如gcc或clang),make,pkg-config和合适的yacc(yacc或bison)。 一些平台为tmux提供二进制软件包。
依存关系C编译器(clang或gcc应该可以) GNU make findutils 的OpenSSL 平台包裹名字自制酒的openssl 德比安libssl开发Fedora / RHEL openssl-开发FreeBSD的openssl-开发如何为GNU / Linux和Homebr进行编译cd ...
FreeBSD GCC 6,7,8,9,10,11 Linux Clang 3.5、3.6、3.7、3.8、3.9、4、5、6、7、8、9、10、11 Linux GCC 4.7、4.8、4.9、5、6、7、8、9、10 macOS Xcode 10.0、10.1、10.2、10.2.1、11.2.1、11.3、11.3.1、...
另一个 Smalltalk VM … 是 Smalltalk ...用法要构建 VM,您需要:Clang 或 GCC 和 Cmake。 # withing VM root directorycmake .make all./st -b smalltalk # compiles Smalltalk kernel and writes to ./snapshot
3. **兼容性提升**:distcc 2.18.3支持多种操作系统和编译器版本,包括但不限于Linux、macOS和FreeBSD,以及GCC和Clang等编译器。 4. **配置与管理**:通过简单的配置文件,用户可以轻松地添加或移除worker节点,...
要构建tmux,需要使用C编译器(例如gcc或clang),make,pkg-config和合适的yacc(yacc或bison)。安装二进制包一些平台为tmux提供了二进制软件包,尽管有时它们已经过时了。 示例列在。从发行包要从发行版tarball...
2. 平台支持:增加了对更多编译器和操作系统的支持,比如Visual Studio、GCC、Clang等。 3. 兼容性增强:确保与C++标准库的兼容性,使得开发者可以方便地在不同STL实现间切换。 4. 错误修复:修复了SGI_STL中的已知...
2. **依赖安装**:确保已经安装了C++编译器(如GCC或Clang)以及CMake构建系统。如果要使用Boost Beast,还需要安装Boost库。 3. **配置CMake**:创建一个构建目录,进入其中并运行`cmake`命令,指定源代码目录和...
6. **开发环境**:开发环境主要包括Ubuntu、FreeBSD和Mac OSX等非Windows系统,编辑器如Geany、vim和Sublime Text2,编译器和调试工具有Gcc、Clang、Go和GDB。浏览器包括Firefox、Chrome、IE、Opera和Safari,项目...