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

仅使用LLVM编译遇features.h缺失,如何实现纯LLVM编译?

仅使用LLVM完成编译的解决方案

问题根源

你遇到的features.h缺失问题,是因为默认情况下Libcxx(LLVM的C++标准库)会依赖Linux系统提供的底层C标准库头文件(比如/usr/include/features.h)。要完全脱离系统头文件,必须搭配使用LLVM官方的llvm-libc(而非系统的glibc),并在编译Libcxx时指定依赖llvm-libc。

步骤1:重新编译LLVM项目(包含llvm-libc并配置依赖)

你之前的编译命令没有正确关联Libcxx和llvm-libc,需要重新编译并添加相关配置:

# 创建编译目录并配置CMake参数
cmake -S llvm-project/llvm -B build \
  -DCMAKE_INSTALL_PREFIX=/home/nekomiya/.vs/kits/toolchain/x86_64-linux/llvm/19.1.1 \
  -DLLVM_ENABLE_PROJECTS="clang;libcxx;libcxxabi;libc;compiler-rt" \
  -DLLVM_TARGETS_TO_BUILD=X86 \
  -DLLVM_ENABLE_RTTI=ON \
  -DLLVM_ENABLE_EH=ON \
  -DLLVM_ENABLE_ASSERTIONS=ON \
  -DLIBCXX_USE_LLVM_LIBC=ON \
  -DLIBCXXABI_USE_LLVM_LIBC=ON \
  -DLIBC_TARGET_TRIPLE=x86_64-pc-linux-gnu \
  -DCMAKE_BUILD_TYPE=Release

# 编译并安装到指定路径
cmake --build build -j$(nproc)
cmake --install build

步骤2:调整编译命令,仅使用LLVM的头文件和库

编译源文件时,需要添加llvm-libc的头文件路径,同时移除gnu++11(避免依赖系统GNU扩展):

/home/nekomiya/.vs/kits/toolchain/x86_64-linux/llvm/19.1.1/bin/clang-19 \
  --target=x86_64-pc-linux-gnu \
  -isystem /home/nekomiya/.vs/kits/toolchain/x86_64-linux/llvm/19.1.1/include/c++/v1 \
  -isystem /home/nekomiya/.vs/kits/toolchain/x86_64-linux/llvm/19.1.1/libc/include \
  -g -std=c++11 \
  -nostdinc -nostdinc++ \
  -MD -MT CMakeFiles/Test.dir/src/test.cpp.o \
  -MF CMakeFiles/Test.dir/src/test.cpp.o.d \
  -o CMakeFiles/Test.dir/src/test.cpp.o -c /home/nekomiya/.vs/kits/src/test.cpp

链接时需要指定使用LLVM的库,完全脱离系统库:

/home/nekomiya/.vs/kits/toolchain/x86_64-linux/llvm/19.1.1/bin/clang-19 \
  --target=x86_64-pc-linux-gnu \
  -L/home/nekomiya/.vs/kits/toolchain/x86_64-linux/llvm/19.1.1/lib \
  -L/home/nekomiya/.vs/kits/toolchain/x86_64-linux/llvm/19.1.1/lib/x86_64-unknown-linux-gnu \
  -nostdlib -nostdlib++ \
  -o Test CMakeFiles/Test.dir/src/test.cpp.o \
  -lc++ -lc++abi -lc -lcompiler-rt

注意事项

  • llvm-libc目前仍在开发中,部分Linux特定的头文件或功能可能尚未完全实现,如果遇到缺失的头文件,可以检查llvm-libc的官方文档确认支持状态。
  • 避免使用-std=gnu++xx这类GNU扩展标准,改用纯C++标准(如-std=c++11),减少对系统定义的依赖。

内容的提问来源于stack exchange,提问作者Nekomiya Kasane

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.16 02:23:13