开发者
资源
我要评分
获取效率
正确性
完整性
易理解
在线提单
论坛求助

基于AI的C/C++源码迁移

命令行工具支持通过交互模式逐步引导,满足实时反馈与灵活调整的需求。

操作步骤

  1. 进入DevKit AI解压后目录,执行命令行工具。
    ./devkitai_cli

    返回信息如下。

    ================================================================================
                            DevKit AI 命令行助手
    ================================================================================
    
    您好!我是 DevKit AI 助手,可以帮助您完成以下任务:
    
      1. cpp_migrate - 执行C/C++源码跨架构迁移分析
      2. sql_migrate - 执行SQL数据库信创迁移分析
    
    请直接输入您的需求(自然语言描述),例如:
      - "请帮我把这个MySQL项目的SQL语句转换为GoldenDB数据库的SQL语句,项目路径是xxxx"
      - "请帮我把这个C++项目进行x86到鲲鹏架构的迁移,项目路径是xxxx"
    
    可用命令:
      /help - 显示帮助信息
      /quit 或 /exit - 退出程序
    ================================================================================
    
    [会话ID] 20260520_015115_8bc99a0a
    
    >>>
  2. 执行C/C++源码迁移。以对“cpptest”项目进行源码迁移为例。
    >>> 帮我把/home/DevKit-AI-x.x.x-Linux-Kunpeng/uploads/20260520_093828_3g54/cpptest/代码从x86迁移到鲲鹏

    返回信息如下。

    开始 C++ 源码迁移 (鲲鹏架构)
    AI改写并发数: 2, 超时时间: 100秒
    ------------------------------------------------------------ CPPTransform ------------------------------------------------------------
    开始 C++ 源码迁移...
    Progress: [0%]
    Progress: [100%]
    为文件 mm_testz_si128_x86.c 生成 2 个补丁
    完成 C++ 源码迁移,共为 1 个文件生成补丁
    ------------------------------------------------------------ CPPAIRewrite ------------------------------------------------------------
    开始 C++ AI 辅助迁移...
    AI改写配置 - 最大并发: 2, 超时时间: 100秒
    C++ AI改写配置 - 最大并发: 2, 超时时间: 100秒
    完成 C++ AI 辅助迁移
    ------------------------------------------------------------ CPPAIRewriteStatistics ------------------------------------------------------------
    开始 C++ 迁移结果统计...
    C++ 迁移统计结果:
    头文件插入-avx2ki       (Header Insertion-avx2ki      ) [状态码  100]:   1 个
    头文件插入-sse2neon     (Header Insertion-sse2neon    ) [状态码  200]:   0 个
    头文件插入-KunpengTrans (Header Insertion-KunpengTrans) [状态码 1300]:   0 个
    内联汇编替换            (Inline ASM Replace           ) [状态码  500]:   0 个
    变量替换                (Variable Replace             ) [状态码  700]:   0 个
    插入elif分支            (Insert elif Branch           ) [状态码 1000]:   0 个
    条件分支                (Conditional Branch           ) [状态码 1010]:   0 个
    架构包裹                (Architecture Wrap            ) [状态码 1600]:   1 个
    编译选项插入            (Compile Flags                ) [状态码 2900]:   0 个
    其他类型 (Other): 共0个
        AI判断需要改写      (AI Needs Rewrite  ):   0 个
        AI判断不需要改写    (AI No Need Rewrite):   0 个
        AI改写超时          (AI Rewrite Timeout):   0 个
    完成 C++ 迁移结果统计。
    ------------------------------------------------------------ CPPPatchApply ------------------------------------------------------------
    开始应用 C++ 迁移补丁...
    已生成 result.patch 文件: cpptest_f47f8d95ade14c46bf788cd9e8dd9bbf/project_info/result.patch
    C++ 修改记录已保存到: cpptest_f47f8d95ade14c46bf788cd9e8dd9bbf/tmp/convert_record.json
    已生成 Excel 文件: cpptest_f47f8d95ade14c46bf788cd9e8dd9bbf/project_info/convert_record.xlsx
    完成 C++ 补丁应用。原项目路径: cpptest_f47f8d95ade14c46bf788cd9e8dd9bbf/origin,修改后项目路径: cpptest_f47f8d95ade14c46bf788cd9e8dd9bbf/result
    C++ 源码迁移完成! 结果保存在: cpptest_f47f8d95ade14c46bf788cd9e8dd9bbf
    C++ 源码迁移已成功完成!
    迁移结果摘要:
    - 迁移项目:cpptest
    - 源架构:x86_64
    - 目标架构:鲲鹏 (AArch64)
    - 处理文件数:1 个文件 (mm_testz_si128_x86.c)
    - 生成补丁数:2 个
    
    迁移统计:
    - 头文件插入 (avx2ki):1 处
    - 架构包裹:1 处
    - 内联汇编替换:0 处
    - 变量替换:0 处
    - 条件分支:0 处
    - 编译选项插入:0 处
    
    结果保存位置:
    - 工作目录:/home/DevKit-AI-x.x.x-Linux-Kunpeng/cpptest_f47f8d95ade14c46bf788cd9e8dd9bbf
    - 原始代码:cpptest_f47f8d95ade14c46bf788cd9e8dd9bbf/origin
    - 迁移后代码:cpptest_f47f8d95ade14c46bf788cd9e8dd9bbf/result
    - 补丁文件:cpptest_f47f8d95ade14c46bf788cd9e8dd9bbf/project_info/result.patch
    - 修改记录:cpptest_f47f8d95ade14c46bf788cd9e8dd9bbf/tmp/convert_record.json
    - Excel 报告:cpptest_f47f8d95ade14c46bf788cd9e8dd9bbf/project_info/convert_record.xlsx
    
    迁移工作已完成,您可以查看上述目录中的迁移结果和详细报告。是否需要我帮您查看具体的迁移修改内容?