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

构建带MemorySanitizer的libcxx时LLVM报错:libcxx非已知项目求解决

修复MemorySanitizer误报未初始化值时的CMake配置错误

为解决MemorySanitizer误报未初始化值的问题,我尝试编译带MemoryWithOrigins sanitizer的libcxx和libcxxabi,执行了以下CMake命令:

cmake -GNinja ../llvm \
    -DCMAKE_BUILD_TYPE=Release \
    -DLLVM_ENABLE_PROJECTS="libcxx;libcxxabi" \
    -DCMAKE_C_COMPILER=clang \
    -DCMAKE_CXX_COMPILER=clang++ \
    -DLLVM_USE_SANITIZER=MemoryWithOrigins

但遇到错误:

libcxx isnt a known project, did you mean to enable it as a runtime LLVM_ENABLE_RUNTIMES

修复方法

新版LLVM架构调整后,libcxx、libcxxabi这类运行时库已从LLVM_ENABLE_PROJECTS选项迁移到LLVM_ENABLE_RUNTIMES下,只需修改CMake参数即可解决:

cmake -GNinja ../llvm \
    -DCMAKE_BUILD_TYPE=Release \
    -DLLVM_ENABLE_RUNTIMES="libcxx;libcxxabi" \
    -DCMAKE_C_COMPILER=clang \
    -DCMAKE_CXX_COMPILER=clang++ \
    -DLLVM_USE_SANITIZER=MemoryWithOrigins

替换参数后,CMake就能正确识别libcxx和libcxxabi项目,继续完成带MemorySanitizer的编译流程,编译完成后使用这套库运行程序即可解决误报问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.16 22:40:03