You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ubuntu(WSL)下CMake编译C++23 std模块:libc++安装及编译方法求助

在Ubuntu(WSL)上部署libc并编译C23模块代码

一、安装适配Clang 19的libc++

Ubuntu官方源的libc版本通常无法支持C23的import std语法,需要安装LLVM官方源提供的配套版本:

  1. 添加LLVM官方源(以Ubuntu 22.04/jammy为例,其他版本替换对应系统代号):
    wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key | sudo apt-key add -
    sudo add-apt-repository "deb http://apt.llvm.org/jammy/ llvm-toolchain-jammy-19 main"
    
  2. 更新源并安装libc++开发包:
    sudo apt update
    sudo apt install libc++-19-dev libc++abi-19-dev
    

二、简化CMake配置

CMake 3.28+已原生支持Clang+libc的C模块,使用以下CMakeLists.txt即可完成配置:

cmake_minimum_required(VERSION 3.28)
project(CppModuleDemo)

# 强制启用C++23标准
set(CMAKE_CXX_STANDARD 23)
set(CMAKE_CXX_STANDARD_REQUIRED ON)

# 指定Clang编译器与libc++标准库
set(CMAKE_CXX_COMPILER clang++)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -stdlib=libc++")

# 开启C++模块支持(官方指定的API标识)
set(CMAKE_EXPERIMENTAL_CXX_MODULE_CMAKE_API "2182bf5c-ef0d-489a-91da-49dbc3090d2a")
set(CMAKE_CXX_MODULES ON)

# 生成可执行文件
add_executable(hello_world main.cpp)

三、编译运行

在项目目录下执行以下命令完成编译与测试:

mkdir build && cd build
cmake ..
make
./hello_world

注意事项

如果编译时提示找不到std模块,可通过clang++ -stdlib=libc++ -v检查编译器默认链接的标准库,确保libc++被正确选中。

内容的提问来源于stack exchange,提问作者Mathlete-101

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.17 10:52:19