Pdch's Blog

Back

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源:

wget https://apt.llvm.org/llvm.sh
chmod +x llvm.sh
sudo ./llvm.sh 20 all
bash

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

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

1.2 安装xmake#

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

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

1.3 VSCode + Clangd + XMake配置#

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

注意

{
  "clangd.arguments": ["--compile-commands-dir=${workspaceFolder}/.vscode"]
}
json

需要设置,否则clangd无法找到编译命令。

2. 启用import std#

2.1 配置xmake#

在xmake.lua中添加:

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()
lua

编写一个简单的程序:

import std;

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

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

├── xmake.lua
└── main.cpp
bash

编译:

xmake
bash

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

enjoy it!#

Clang+Clangd+Xmake使用import std
https://pd-ch.github.io/blog/2025-05-04-clangclangdxmake-import-std
Author Pdch
Published at May 4, 2025
Comment seems to stuck. Try to refresh?✨