先检查 clang 是否安装:终端运行 clang --version,若报 command not found 则需先安装 clang 及 clang++;编译 c++ 程序必须用 clang++(自动链接标准库),而非 clang;运行可执行文件需加 ./ 前缀。

确认系统里有没有 clang
很多 Linux 发行版(比如 Ubuntu/Debian)默认装的是 gcc,clang 得手动装。macOS 自带 Xcode Command Line Tools,里面包含 clang,但得先运行 xcode-select --install 激活;Windows 上得装 LLVM 官方包或通过 WSL 使用。
验证是否就绪,终端里敲:
clang --version
如果报 command not found,就别往下试了——先装好 clang 和配套的 clang++(C++ 编译器前端)。
clang++ 而不是 clang 编译 C++ 程序
clang 本身是 C 编译器前端,对 C++ 代码会报错或链接失败(比如找不到 std::cout 对应的库)。真正该用的是 clang++,它自动链接 C++ 标准库(libc++ 或 libstdc++),并设好默认语言标准。
写个最简程序 hello.cpp:
#include <iostream>
int main() {
std::cout
<p>编译命令必须是:</p>
<pre class="brush:php;toolbar:false;">clang++ hello.cpp -o hello
- 用
clang hello.cpp会报类似undefined reference to 'std::cout'的链接错误 -
-o hello指定输出可执行文件名,不加的话默认叫a.out - 没加
-std=参数时,clang++默认用 C++14(旧版可能用 C++98),有新语法建议显式指定,比如-std=c++17
常见报错:找不到头文件或链接失败
如果提示 fatal error: 'iostream' file not found,说明 clang++ 找不到 C++ 标准库头文件路径——通常是安装不完整或环境变量干扰。
- Linux 上检查是否装了
libc++-dev(Debian/Ubuntu)或llvm-devel(Fedora) - macOS 上确认 Xcode CLT 已安装且未被 Xcode.app 覆盖:
xcode-select -p应输出类似/Library/Developer/CommandLineTools - Windows + WSL 下,优先用 Ubuntu 官源装
clang,别混用 MinGW 或 MSVC 工具链 - 避免手动设置
CPATH或LIBRARY_PATH,除非你清楚 clang 搜索路径顺序(可用clang++ -v hello.cpp -fsyntax-only查看)
运行前记得加 ./
生成的 hello 是当前目录下的可执行文件,直接敲 hello 会提示 command not found——因为系统只在 $PATH 里找命令,当前目录不在其中。
必须写成:
./hello
这是新手最容易卡住的一步。Clang 编译本身成功了,但运行时路径没写对,以为编译出错了。
C++免费学习笔记(深入):立即使用
在学习笔记中,你将探索 C++ 的入门与实战技巧!











