据LLVM博客消息,从
Chrome 64 开始,Chrome for Windows 改用 Clang
进行编译。这也意味着,所有平台的 Chrome 现已全部使用相同的编译器,包括
macOS、iOS、Linux、Chrome OS、Android 和 Windows 。此前,Windows 版的
Chrome 使用的是微软的 Microsoft C++ 编译器。

继 Google
Chrome 宣布弃用微软
C++ 编译器(MSVC)Windows 版 Chrome 改用 Clang 之后,Mozilla 的 Firefox
浏览器昨日也宣布开始使用
Clang 编译器编译其 Windows 版本。

澳门新葡萄京所有网站 1

澳门新葡萄京所有网站 2

澳门新葡萄京所有网站 3

微软最近发布将在2015年11月 Visual C++ 更新中加入 Clang 编译器 ,Clang
开源编译器以相比GCC更快的编译速度和更优的错误提示著称。

Clang 是第一款与 Microsoft Visual C ++(MSVC)ABI 兼容的开源 C ++
编译器,这意味着可以使用 MSVC
编译器(“cl.exe”)构建应用的某些部分(例如系统库) ,其他部分使用
Clang,当二者通过 MSVC 或 LLVM
的链接器链接到一起时,仍然可以构成可正常工作的应用程序。

目前该调整正处于测试阶段,开发团队表示已做好在 MSVC 和 Clang
上来回切换的准备,以避免出现某些不可预知的问题。之后,他们将切换到
lld-link 并启用 ThinLTO ,方便在 Rust 和 C ++
之间内联调用。从更长远来看,他们倾向于从 Linux 进行交叉编译。

Clang关于C,C++,及Objective C的编译器,能够生成LLVM
的中间代码,是支持跨平台编译的开源项目。起初Clang只支持Apple开发,在2007年开源。目前,Google,Sony
以及其他大公司都在使用。

使用 Clang 编译后,Chrome 64 位版本的安装程序会变小,32
位的版本会稍微变大。性能方面,经过测试发现,一些指标会变得更好,但也有一些变得更糟,所有指标相差在
5% 以内。

在性能方面,开发团队称目前用 Clang 编译的版本相比 MSVC
编译的版本性能有升有降,原因是还没有启用 LTO 或 PGO
方法优化。在弃用之后,会保持观察,希望 Clang
版本能够获得明显的性能提升。Clang 作为流行的跨平台编译器,切换到 Clang
可以在各个平台上统一编译器,简化开发和 bug
处理。如果最终性能情况还是无法接受,不排除会切换回 MSVC 版本。

VisualStudio 2015已经整合了Android和iOS
开发使用的Clang。编译Android应用时可选择GCC或Clang 工具箱。

澳门新葡萄京所有网站 4

澳门新葡萄京所有网站 5

即将集成的Clang 编译器将支持Windows 应用程序。

至于切换的原因,除了 Clang
本身的一些特性优势外,各个平台统一编辑器是最主要的考量因素。这意味着以后开发者在每一个平台需要处理的
bug
是相同的,能有效简化开发。同时,一些特定于编译器的微优化,也能适用于所有平台。

(文/开源中国)    

Visual C++ 是由 Visual Studio
IDE,前端编译器(生成AST文件),后端编译器(可以读取AST文件,并生成可执行的代码)等几部分组成,其中前端编译器成为C1,后端编译器称为C2,C1和C2是不同的开发团队。

(文/开源中国)    

微软此次会将Clang 加入到C1组中,C2继续后端编译器开发工作。Clang 生成LLVM
IR文件,会在C2 编译转换。代码生成过程保持不变。

此次微软引入Clang/C2是为了支持跨平台开发。就拿Office来说,使用Clang
之后,Office可以在Andorid,iOS,Windows10 运行畅通,有效提升代码质量。

预计2016年2月,Clang/C2有望发布。微软也正在计划发布“build
only”版本的Visual
C++,该版本只需要安装编译器和命令行工具就可运行,可以不需要Visual Studio
IDE。