Clang+Clangd+Xmake使用import std

Last updated on June 18, 2025

说明:本文介绍如何使用Clang+Clangd+Xmake启用C++-23新特性”import std”。

1. 环境配置

我个人使用的环境是:

  • Debian unstable
  • visual studio code
  • Clang 20.1.5
  • Clangd 20.1.5
  • Xmake 2.9.9

1.1 安装llvm全家桶

根据apt.llvm.org的说明,添加llvm源:

1
2
3
wget https://apt.llvm.org/llvm.sh
chmod +x llvm.sh
sudo ./llvm.sh 20 all

注意:需要有对应的libc++-20-dev包。如果有任何疑问可以使用apt policy libc++-20-dev查看。

警告:如果clang,clangd,与libc++-dev版本对不上,clangd就不能正常工作。

1.2 安装xmake

根据xmake.io的说明进行安装:

1
wget https://xmake.io/shget.text -O - | bash

1.3 VSCode + Clangd + XMake配置

可以参考[万字长文]Visual Studio Code 配置 C/C++ 开发环境的最佳实践(VSCode + Clangd + XMake)

注意

1
2
3
{
"clangd.arguments": ["--compile-commands-dir=${workspaceFolder}/.vscode"]
}
需要设置,否则clangd无法找到编译命令。

2. 启用import std

2.1 配置xmake

在xmake.lua中添加:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
add_rules("mode.debug", "mode.release")
add_rules("plugin.compile_commands.autoupdate", { outputdir = "./.vscode" })

set_plat("linux")
set_toolchains("clang")
set_runtimes("c++_static")
set_config("sdk", "/usr/lib/llvm-20/")

target("stdmodules")
set_kind("binary")
add_files("*.cpp")
set_languages("c++23")
set_policy("build.c++.modules", true)
target_end()

编写一个简单的程序:

1
2
3
4
5
6
import std;

auto main() -> int {
std::println("Hello, World!");
return 0;
}

此时你的项目结构应该是这样的:

1
2
├── xmake.lua
└── main.cpp

编译:

1
xmake

产物位于build/linux/x86_64/release/目录下。

enjoy it!


Clang+Clangd+Xmake使用import std
https://pd-ch.github.io/2025/05/04/clang+clangd+xmake-import-std.html
Author
Peidong Chen
Posted on
May 4, 2025
Updated on
June 18, 2025
Licensed under