手动构建的llvm在windows上无卸载程序,需删除build目录、清理path中相关bin路径、移除安装目录(如执行过cmake --install)、检查并删除注册表中残留项。

Windows 上用 Visual Studio 构建的 LLVM 怎么彻底卸载
手动构建的 LLVM(比如用 cmake -G "Visual Studio 17 2022" 生成的)不会注册 Windows 安装程序,也没有自带卸载器。它本质就是一堆编译产物,卸载 = 删除构建目录 + 清理环境变量 + 检查残留符号链接。
常见错误现象:卸载后仍能运行 clang --version,或 CMake 仍找到旧路径,说明环境变量或 PATH 中残留了 build\bin 或 build\install\bin 路径。
- 先关闭所有终端和 IDE(VS、VS Code),避免文件被占用
- 删除整个构建目录(例如你执行
cmake -B build的那个build文件夹)——这是最核心的一步,build\bin、build\lib、build\include全在里面 - 如果执行过
cmake --install,还要手动删掉你指定的安装目录(如D:\llvm-install) - 检查系统环境变量
PATH,删掉所有指向 LLVM 构建/安装目录下bin子目录的条目 - 搜索注册表(谨慎!):按
Win+R输入regedit,查找键值含llvm或clang的路径(尤其关注HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment\Path),只删明确属于你手动构建版本的条目
macOS 上通过 Homebrew 安装的 LLVM 怎么清理干净
Homebrew 安装的 LLVM(brew install llvm)看似一键安装,但卸载不等于 brew uninstall llvm 就完事。Clang 默认会软链到 /usr/local/bin,头文件、库路径、甚至 llvm-config 都可能残留。
使用场景:你后续想换用 Xcode 自带 Clang,或改用官方预编译包,必须确保 Homebrew 版本完全退出 PATH 和链接体系。
- 执行
brew uninstall llvm—— 这会卸载主包,但不会自动删掉brew install clang(如果单独装过)或brew install lldb - 检查
/usr/local/bin/下是否还有clang、clang++、llvm-config等软链:ls -l /usr/local/bin/clang*;若指向../Cellar/llvm/,说明没清干净,手动rm掉 - 运行
brew doctor,它会提示 “Unbrewed dylibs” 或 “Unbrewed header files”,这些往往是 LLVM 安装时写入/usr/local/lib或/usr/local/include的残留,需手动确认后删除 - 检查 shell 配置文件(
~/.zshrc或~/.bash_profile),删掉类似export PATH="/usr/local/opt/llvm/bin:$PATH"的行
Linux(Ubuntu/CentOS)用官方 tar.xz 包安装的 LLVM 如何卸载
官方二进制包(如 clang+llvm-17.0.6-x86_64-linux-gnu-ubuntu-22.04.tar.xz)解压后通常放在 /usr/lib/llvm-17,再通过 ln -sf 软链到 /usr/bin。卸载关键在“断链 + 清路径 + 刷新动态库缓存”。
容易踩的坑:只删 /usr/lib/llvm-17 目录,却忘了 /etc/ld.so.conf.d/libcpp.conf 里还留着 libc++ 的库路径,导致后续链接失败或运行时找不到 libc++.so.1。
- 先删软链:
sudo rm -f /usr/bin/clang /usr/bin/clang++ /usr/bin/llvm-config(根据你当时创建的链接名调整) - 再删安装目录:
sudo rm -rf /usr/lib/llvm-17 - 检查并删掉
/etc/ld.so.conf.d/下对应 LLVM 的配置文件(如libcpp.conf),然后执行sudo ldconfig - 检查
pkg-config是否还识别 LLVM:pkg-config --modversion llvm;若返回版本号,说明PKG_CONFIG_PATH环境变量里还存着旧路径,去 shell 配置中清理
环境变量清理最容易被忽略的三个地方
卸载 LLVM 后命令还能跑,90% 是环境变量没清干净。不是只看 PATH 就够了。
性能影响:残留的 LLVM_DIR 或 CLANG_CXX_LIBRARY 可能让 CMake 错误地复用旧构建缓存,导致链接 libc++ 失败或生成目标架构错乱。
-
LLVM_DIR:CMake 查找 LLVMConfig.cmake 的根路径,常被设为/usr/lib/llvm-17/lib/cmake/llvm,IDE 或脚本可能硬编码它 -
CLANG_CXX_LIBRARY:控制 Clang 默认链接 libc++ 还是 libstdc++,设成libc++但实际已删库,会导致编译直接失败 -
CC/CXX:有些项目脚本会强制用CC=clang CXX=clang++,如果这两个变量仍指向旧路径,就绕过了系统默认编译器切换
检查方式统一:在终端输入 echo $LLVM_DIR $CLANG_CXX_LIBRARY $CC $CXX,空输出才安全。改完配置文件后,务必新开终端验证,别信 source ~/.zshrc 后的临时效果。











