无需安装Visual Studio,在Windows上用CLANG编译C++可行吗?
无需安装Visual Studio在Windows编译C++的可行方案
方案1:LLVM Clang + MinGW-w64 + Ninja
- 先装MinGW-w64:选支持x86_64的版本,安装时把bin目录(比如
C:\mingw64\bin)加入系统环境变量,它自带GCC标准库、链接器和基础工具链,能搞定编译依赖。 - 装LLVM Clang:从LLVM官网下独立安装包,勾选"Add LLVM to PATH",这样
clang.exe和clang++.exe就能在终端直接调用。 - 装Ninja:下Ninja的二进制包,把
ninja.exe丢到系统PATH能访问的目录(比如MinGW的bin目录,或者单独给它加个路径)。 - 配置CMake构建:打开终端,先指定编译器:
然后生成Ninja构建文件并编译:set CC=clang set CXX=clang++
这套组合完全不需要Visual Studio,所有工具都是独立的。cmake -G Ninja -S . -B build cmake --build build
方案2:LLVM Clang + Windows SDK独立包 + Ninja
- 装LLVM Clang:同上,选独立安装包并加入PATH。
- 装Windows SDK独立包:去微软官网下Windows SDK,只选"Windows SDK for Desktop C++ Apps"组件就行,不用装VS。安装后会提供系统头文件、链接器(link.exe)和编译必需的依赖。
- 配置环境:得加载Windows SDK的环境变量,要么运行SDK自带的
SetEnv.cmd脚本(路径比如C:\Program Files (x86)\Windows Kits\10\bin\10.0.22621.0\x64\SetEnv.cmd,版本号按你装的SDK改),要么手动把INCLUDE、LIB、PATH指向SDK的对应目录。 - 用CMake构建:同样先指定Clang为编译器,再生成Ninja项目:
这个方案用微软官方SDK替代VS工具链,适合需要兼容Windows系统API的场景。set CC=clang set CXX=clang++ cmake -G Ninja -S . -B build cmake --build build
常见坑点处理
- 如果CMake还是找不到工具链,先查环境变量:运行
clang --version和ninja --version确认工具能被调用,同时检查INCLUDE和LIB路径有没有包含头文件、库文件的目录。 - 链接时丢系统库:MinGW方案下确保MinGW的lib目录在PATH里;Windows SDK方案下确认加载了SDK的环境脚本,或者手动把LIB指向SDK的lib目录(比如
C:\Program Files (x86)\Windows Kits\10\Lib\10.0.22621.0\um\x64)。
内容的提问来源于stack exchange,提问作者Royce Strike
相关产品推荐
相关产品推荐

