Shawn摘要

由于平时都在linux平台下进行开发,抽空想同步下Windows上的开发环境

Clang

Clang 的开发始于 2007 年,由 Chris Lattner (同时也是 Swift 语言的创始人)和他的团队在苹果公司启动。最初的动机是为了替代 GCC,解决 GCC 在编译速度、内存使用和错误信息方面的不足,苹果公司在 Xcode 4.2 中默认使用 Clang 作为编译器。

ClangGCC一样同属于编译器套件,是一个编译器前端,它主要用于处理 C、C++、Objective-C 和 Objective-C++ 代码。它将源代码转换成中间表示(IR),然后由后端进一步处理成机器代码,

LLVM(Low Level Virtual Machine)是一个编译器基础架构项目,提供了一系列编译器和工具链技术,用于创建前端和后端编译器。LLVM 提供了 Clang 需要的后端支持,将中间表示(IR)转换成机器代码。

需要从LLVM官方网站下载并安装LLVM和Clang的预编译二进制文件包。可以通过访问LLVM下载页面获取安装包。

Clang在Windows上通常依赖于Microsoft的编译工具链,包括链接器和标准库(rust也同样依赖)。你可以安装完整的Visual Studio IDE,或者如果只需要编译工具,可以安装Visual Studio Build Tools

Visual Studio Build Tools
选择 使用 C++ 的桌面开发 即可

也可以在 GitHub 直接下载LLVM,我下载的是LLVM 18.1.6,Assets中选择LLVM-18.1.6-win64.exe

LLVM

之后无脑下一步就行,安装位置在C:\Program Files\LLVM,安装完毕后在Path中加入环境变量C:\Program Files\LLVM\bin即可

之后打开终端输入clang -v就可以看到了

1
2
3
4
5
clang -v
clang version 18.1.6
Target: x86_64-pc-windows-msvc
Thread model: posix
InstalledDir: C:\Program Files\LLVM\bin

注意Windows下编译文件需要将文件编译成.exe后缀才能运行

例如:

Windows下默认是.\,输入./也ok

1
2
3
4
# 编译
clang++ .\main.cc -o main.exe
# 运行
./main.exe

Clangd

Clangd 是一个专门为 C、C++ 以及 Objective-C 开发的语言服务器,基于 Clang 编译器框架。它实现了 Language Server Protocol (LSP),提供代码补全、语法检查、代码导航和重构等功能。

在 VSCode 中,Clangd 提供了比官方 C/C++ 扩展更为出色的开发体验,特别是在性能和代码分析方面。通过合理配置和使用 Clangd,开发者可以显著提高开发效率和代码质量。

在 VSCode 中使用 Clangd

在 VSCode 中,可以通过安装 clangd 扩展来使用 Clangd 作为语言服务器。

clangd

与官方的 C/C++ 扩展相比,clangd 具有以下优势:

  1. 性能:Clangd 是专门为 Clang 编译器设计的,具有较高的性能和响应速度。
  2. 准确性:由于 Clangd 使用 Clang 编译器解析代码,语法检查和代码补全的准确性更高,特别是在处理复杂的 C++ 代码时表现更为出色。
  3. 更好的标准支持:Clangd 对现代 C++ 标准(如 C++11、C++14、C++17、C++20)的支持更为全面和准确。
  4. 语义着色:Clangd 提供更细粒度的语义着色,有助于开发者更容易地理解和维护代码。

例如下面这张图,clangd提供更加易懂的C++提示

clangd

至此,在Windows上完成了ClangClangd的安装与配置