编译 llvm 的 libc++
前置依赖Ubuntu/Debiansudoaptupdatesudoaptinstall-ygitcmake ninja-build python3\gcc g binutils-dev libzstd-dev\zlib1g-dev libxml2-dev libedit-dev libncurses5-dev1. 获取源码MonorepoLLVM 现在使用单仓库monorepoclang、libc、libcabi、libunwind都在里面gitclone--depth1https://github.com/llvm/llvm-project.gitcdllvm-project目录结构llvm-project/ ├── llvm/ # LLVM 核心 ├── clang/ # Clang 前端 ├── libcxx/ # libc 标准库 ├── libcxxabi/ # libcabi 运行时 ├── libunwind/ # 栈展开库 ├── lld/ # 链接器 └── ...2. 关键 CMake 配置在llvm-project根目录下执行cmake-Sllvm-Bbuild-GNinja\-DLLVM_ENABLE_PROJECTSclang;lld\-DLLVM_ENABLE_RUNTIMESlibcxx;libcxxabi;libunwind\-DLLVM_TARGETS_TO_BUILDNative\-DCMAKE_BUILD_TYPERelease\-DCMAKE_INSTALL_PREFIX/usr/local/llvm\-DLLVM_ENABLE_LIBCXXON\-DLLVM_STATIC_LINK_CXX_STDLIBOFF\-DCLANG_DEFAULT_CXX_STDLIBlibc\-DLLVM_INSTALL_UTILSON\-DLLVM_ENABLE_TERMINFOOFF关键选项解释选项作用LLVM_ENABLE_PROJECTSclang;lld同时编译clang和lld链接器LLVM_ENABLE_RUNTIMESlibcxx;libcxxabi;libunwind把libc、libcabi、libunwind作为运行时一并构建LLVM_ENABLE_LIBCXXON让LLVM 自身在编译时也链接libc而不是libstdcLLVM_STATIC_LINK_CXX_STDLIBOFF动态链接 libc生成.so文件设为ON则静态链接CLANG_DEFAULT_CXX_STDLIBlibc让编译出的clang默认使用libc无需每次加-stdliblibcLLVM_TARGETS_TO_BUILDNative只编译本机架构加快编译速度如需交叉编译可改为X86;AArch64;ARM等CMAKE_INSTALL_PREFIX/usr/local/llvm安装路径避免覆盖系统默认编译器3. 编译与安装# 编译根据 CPU 核心数调整 -jninja-Cbuild -j$(nproc)# 安装到 /usr/local/llvmsudoninja-Cbuildinstall注意编译 LLVM 非常耗时Release 模式下可能需要 30 分钟到数小时建议至少预留 20GB 磁盘空间。4. 验证与使用检查编译出的 libc.sols/usr/local/llvm/lib/libc*# 应看到 libc.so.1、libcabi.so.1、libunwind.so.1 等使用新编译的 clang默认已链接 libcexportPATH/usr/local/llvm/bin:$PATH# 直接编译无需 -stdliblibc因为设置了 CLANG_DEFAULT_CXX_STDLIBclang hello.cpp-ohello# 验证动态依赖ldd hello|grepc# 应显示 libc.so.1而不是 libstdc.so.6如果未设置CLANG_DEFAULT_CXX_STDLIBclang-stdliblibc hello.cpp-ohello5. 完整生产级配置参考如果你需要更完整的配置如包含compiler-rt、bolt等cmake-Sllvm-Bbuild-GNinja\-DLLVM_ENABLE_PROJECTSclang;clang-tools-extra;lld;lldb\-DLLVM_ENABLE_RUNTIMEScompiler-rt;libcxx;libcxxabi;libunwind\-DLLVM_TARGETS_TO_BUILDX86;AArch64;ARM;RISCV\-DCMAKE_BUILD_TYPERelease\-DCMAKE_INSTALL_PREFIX/usr/local/llvm\-DLLVM_ENABLE_LIBCXXON\-DLLVM_STATIC_LINK_CXX_STDLIBOFF\-DCLANG_DEFAULT_CXX_STDLIBlibc\-DCLANG_DEFAULT_LINKERlld\-DLLVM_INSTALL_UTILSON\-DLLVM_ENABLE_TERMINFOOFF\-DLLVM_ENABLE_LIBXML2OFF\-DLLVM_ENABLE_ZLIBON\-DLLVM_USE_LINKERlld常见问题Q: 编译时提示找不到 libc 头文件A: 确保LLVM_ENABLE_RUNTIMES包含了libcxx;libcxxabi且源码目录下确实有libcxx/和libcxxabi/文件夹monorepo 默认包含。Q: 编译出的 clang 还是链接了 libstdcA: 检查LLVM_ENABLE_LIBCXXON是否生效并确认安装后使用/usr/local/llvm/bin/clang而非系统默认的/usr/bin/clang。Q: 如何完全自举bootstrapA: 先用系统 GCC 完成上述编译Stage 1然后用 Stage 1 的clang作为CMAKE_C_COMPILER/CMAKE_CXX_COMPILER再编译一次并确保加上-stdliblibc。

相关新闻

免部署的AI教学平台哪家性价比高?看实战云的SaaS模式

免部署的AI教学平台哪家性价比高?看实战云的SaaS模式

在人工智能教育普及的今天,高校和职业院校在推进AI专业建设与通识教育时,普遍面临一个核心痛点:算力资源昂贵且维护复杂。因此,“免部署的AI教学平台哪家性价比高”成为了众多院校信息化建设负责人和专业带头人关注的焦点。 作为…

2026/6/25 18:00:34阅读更多 →
Unlag Neo:解决 Macbook Neo 光标卡顿问题,低 CPU/GPU 占用的实用方案!

Unlag Neo:解决 Macbook Neo 光标卡顿问题,低 CPU/GPU 占用的实用方案!

Unlag Neo:修复 Macbook Neo 光标卡顿问题在 Macbook Neo(系统为 macOS Tahoe 26.5.1)上,当光标靠近屏幕边缘或进入终端窗口时,会出现卡顿现象。卡顿原因目前尚不清楚具体原因。但在卡顿发生时,系统会从硬件…

2026/6/25 18:00:34阅读更多 →
STM32-S01-人走灯灭+光敏+自动+手动+10档调节+LCD1602屏+(无线方式选择)-3(设计源文件+万字报告+讲解)(支持资料、图片参考_相关定制)_文章底部可以扫码

STM32-S01-人走灯灭+光敏+自动+手动+10档调节+LCD1602屏+(无线方式选择)-3(设计源文件+万字报告+讲解)(支持资料、图片参考_相关定制)_文章底部可以扫码

STM32-S01-人走灯灭光敏自动手动10档调节LCD1602屏(无线方式选择)-3(设计源文件万字报告讲解)(支持资料、图片参考_相关定制)_文章底部可以扫码 产品功能描述: 本系统由STM32F103C8T6单片机核心板、LCD1602液晶屏、(无线蓝牙/无线…

2026/6/25 17:55:34阅读更多 →
高性能跨平台视频播放器:Kazumi智能进度条预览与实时缩略图生成技术实现

高性能跨平台视频播放器:Kazumi智能进度条预览与实时缩略图生成技术实现

高性能跨平台视频播放器:Kazumi智能进度条预览与实时缩略图生成技术实现 【免费下载链接】Kazumi 基于自定义规则的番剧采集APP,支持流媒体在线观看,支持弹幕,支持实时超分辨率。 项目地址: https://gitcode.com/gh_mirrors/ka/…

2026/6/25 19:31:01阅读更多 →
企业级智能体开发平台如何选?2026主流平台技术解析

企业级智能体开发平台如何选?2026主流平台技术解析

步入 2026 年,企业级智能体已正式进入规模化商业应用的核心阶段。面对这股技术浪潮,很多企业管理者都在问:“企业级智能体开发平台哪个好?”作为企业数字化升级的核心驱动力,这些平台正在从根本上重塑商业运营模式、业…

2026/6/25 19:31:01阅读更多 →
131、 调试手记:为什么我的PCIE设备在系统里消失了?

131、 调试手记:为什么我的PCIE设备在系统里消失了?

131、 调试手记:为什么我的PCIE设备在系统里消失了? 上周在实验室调试一块自研的PCIE采集卡,系统启动后lspci命令死活找不到设备。示波器抓包发现配置周期确实发出来了,设备也回了数据,但CPU就是认不到。熬到凌晨三点,突然想起BIOS里那个“Above 4G Decoding”选项——问…

2026/6/25 19:31:01阅读更多 →
算法测试中的数据规模与时间复杂度匹配的技术7

算法测试中的数据规模与时间复杂度匹配的技术7

理论基础时间复杂度的定义与常见表示法(大O符号)数据规模对算法性能的影响机制不同时间复杂度类别的典型特征(O(1), O(log n), O(n), O(n log n), O(n)等)匹配原则理论时间复杂度与实际测试数据的关联性分析临界点测试&#xff1a…

2026/6/25 19:31:01阅读更多 →
Claude Opus 4.6 延迟优化工程实践:响应速度与性能提升分析

Claude Opus 4.6 延迟优化工程实践:响应速度与性能提升分析

概要2026 年 2 月 6 日,Anthropic 正式发布 Claude Opus 4.6——距离上代仅三个月,但不是小幅迭代,而是架构级重构。核心变化:首次在 Opus 级别引入 100 万 Token 上下文窗口(测试版),推理能力大…

2026/6/25 19:31:01阅读更多 →
山东大学软件学院项目实训团队博客:基于AI大模型的智能考研助手(八)

山东大学软件学院项目实训团队博客:基于AI大模型的智能考研助手(八)

本周作为项目的收尾阶段,团队以“填补空白、联调测试”为主线:集中修复了一批影响体验的 Bug,补齐了聊天分享错题等社交闭环,对 AI 小助手做了知识库化整改,并对各模块进行了完整的集成测试。系统主要功能闭环已经完整…

2026/6/25 19:26:00阅读更多 →
【人工智能】一文搞定到底什么是智能体

【人工智能】一文搞定到底什么是智能体

【人工智能】一文搞定到底什么是智能体 一文搞定到底什么是智能体【人工智能】一文搞定到底什么是智能体一. LM,WorkFlow,Agent分别有什么么不同二. Agent的思考过程是怎样的三. Agent的五个核心部分1)LLM2)Prompt3)Me…

2026/6/25 9:39:54阅读更多 →
嵌入式GUI控件实战:ROTARY、SCROLLBAR、SLIDER原理与应用

嵌入式GUI控件实战:ROTARY、SCROLLBAR、SLIDER原理与应用

1. 嵌入式GUI控件:从原理到实战的深度解析在嵌入式系统开发中,图形用户界面(GUI)的设计与实现往往是项目从“能用”到“好用”的关键一跃。不同于资源充沛的PC或移动平台,嵌入式设备的GUI需要在有限的CPU性能、内存空间…

2026/6/25 2:52:24阅读更多 →
Google AI Studio 300美元额度的真相与实战指南

Google AI Studio 300美元额度的真相与实战指南

1. 这300美金不是“送钱”,而是Google埋下的第一道技术门槛 你看到标题里那个醒目的“$300美金”时,第一反应可能是:又一个免费额度?领完就完事?我亲手试过——这300美金根本不是红包,而是一张入场券&…

2026/6/25 9:01:34阅读更多 →
面试辅助工具横评:我试了5款AI面试工具,最后留下了OfferGo

面试辅助工具横评:我试了5款AI面试工具,最后留下了OfferGo

上半年跳槽,面了十几家公司。说句实话,不是能力不行,是面试现场太容易崩了。 明明准备了一周,面试官换个问法脑子就一片白。面完之后那个懊悔——其实我会的。 后来开始试市面上的AI面试辅助工具。前前后后装了5款,踩…

2026/6/25 11:52:11阅读更多 →
Claude Code 提示词设计:从塑造“人格”到建立“状态机”

Claude Code 提示词设计:从塑造“人格”到建立“状态机”

当前 AI Agent 设计的核心痛点在于:大模型不缺写代码的能力,缺的是克制力、边界感和验证逻辑。Prompt 不再是用来塑造“人格”的,而是用来建立“状态机(State Machine)”和“行为门禁(Guardrails&#xff0…

2026/6/25 11:52:11阅读更多 →
MC-037 | 自定义 Skill 开发:创建你的AI能力模块

MC-037 | 自定义 Skill 开发:创建你的AI能力模块

MONKEYCODE 教程系列 MonkeyCode教程及推广系列 MC-037 自定义 Skill 开发:创建你的AI能力模块 >官网链接注册更放心哦https://monkeycode-ai.com/?ic019e0aed-c823-783c-b08a-4f030f891e4e 系列: 不爱土豆唯爱马铃薯 MonkeyCode 教程系列 字数: 约 1400 字…

2026/6/25 11:52:11阅读更多 →