github编辑

22.4 LLVM / Clang 概述

FreeBSD 基本系统内置 Clang 编译器,但并不包含 LLVM 中的其他组件,如 clangd(语言服务器,用于代码补全、编译错误提示和定义跳转等)、Clang-Tidy(代码风格诊断器)以及 clang-format(用于格式化 C/C++ 代码)。

因此需要安装 LLVM,这里可以使用各个版本的 LLVM,但其版本至少不应低于系统自带的 Clang。在 FreeBSD 15.0-RELEASE 中,基本系统中的 Clang 版本为 19。

查看 Clang 编译器的版本信息:

# clang -v
FreeBSD clang version 19.1.7 (https://github.com/llvm/llvm-project.git llvmorg-19.1.7-0-gcd708029e0b2)
Target: x86_64-unknown-freebsd15.0
Thread model: posix
InstalledDir: /usr/bin

下文使用 LLVM 20,安装后对应的程序名为 clang20、clang++20、clangd20 和 clang-format20。系统自带的 Clang 程序名为 clang。如果使用不同版本,请注意对应的程序名称。

Clang 版本概述

LLVM 项目上游的 LLVM 版本号

在 LLVM 项目上游的源代码中,在 LLVM 19 之前,LLVM 源代码的版本号规定在文件 llvm/CMakeLists.txt 中,在 [cmake] Exposes LLVM version number in the runtimes.arrow-up-right 之后,LLVM 版本号规定在源文件 ‎cmake/Modules/LLVMVersion.cmakearrow-up-right 中。

# The LLVM Version number information
# LLVM 版本号信息

if(NOT DEFINED LLVM_VERSION_MAJOR)
  set(LLVM_VERSION_MAJOR 23) # 注意此处,代表写作本文时,主线版本是 LLVM 23

……省略其他内容……

FreeBSD 基本系统中的 LLVM 版本号

FreeBSD 将 LLVM 导入了基本系统源代码中,但是不是直接导入,而是经过了一定的处理,写作文章时 FreeBSD src 内置的 LLVM 仍为 LLVM 19,故而,注明版本号的文件路径位于 lib/clang/include/clang/Basic/Version.incarrow-up-right

从 Ports 安装 Clang 环境包

基本系统内置的 Clang 版本可能较低,无法满足日常需要。因此需要从 Ports 安装。

  • 使用 pkg 安装:

  • 或者使用 Ports 安装:

参考文献

最后更新于