文章提出CXXCrafter——首个基于LLM代理的C/C++开源软件自动化构建系统。通过实证研究发现主流C/C++项目平均需解决5个构建错误,主要挑战包括依赖管理复杂性(占比74%)、构建系统多样性(20+种工具链)及错误诊断困难。CXXCrafter设计三模块协同框架:解析器自动提取依赖和文档,生成器动态生成/修正Dockerfile,执行器通过容器化环境实现错误反馈循环。在752个项目的评估中,系统达成78%构建成功率,较启发式方法(39%)和纯LLM(34%)显著提升,单次构建成本仅0.41美元。
开源C/C++软件(如操作系统、数据库)是基础设施的核心组件,其自动化构建对漏洞检测、程序分析至关重要。然而,现有研究主要聚焦Java/Python,C/C++构建自动化存在显著空白:涉及20余种异构构建系统(CMake/Make/Autotools等)、复杂依赖管理及多阶段错误诊断。实证研究表明,100个流行C/C++项目中仅21个能用默认命令成功构建,79个项目平均需修复5个错误,耗费153人时。
对100个项目的384个构建错误归因表明:
系统通过三模块闭环解决挑战:
在Top100和Awesome-CPP(共752项目)的测试表明:
| 方法 | 成功率 | 优势 |
|---|---|---|
| 默认构建命令 | 39.01% | - |
| 纯LLM(GPT-4o) | 31.65% | - |
| CXXCrafter | 78.10% | 解决3个人工失败项目 |
消融实验证明:
单项目平均耗时875秒,成本0.41美元。磁盘消耗为主要瓶颈(实验产生50TB数据)。
CXXCrafter首次实现LLM代理驱动的大规模C/C++构建自动化,其优势包括:
代码已在GitHub开源。