
# 通过Gcc/Clang实现构建加速
Gcc/Clang构建加速是指通过分布式编译、增量编译等技术，实现对软件编译过程的效率提升，支撑企业研发过程的快速迭代，缩短产品的上市周期。
#### 约束与限制
- 目前该功能仅支持代码源为CodeArts Repo的C/C++语言构建工程的编译构建加速。
- 使用构建加速能力需要额外购买配套构建加速包，构建加速包因加速原理以及效果的不同，共有三种规格以供购买，规格介绍及购买指南请参考[购买构建加速包](https://support.huaweicloud.com/usermanual-codeci/codeci_ug_0001.html#codeci_ug_0001__section149572025115515)。
- 用户基于自定义执行机的构建，无法使用构建加速能力。
 
#### 配置CMake构建加速（图形化构建）
1. 通过项目入口方式[访问CodeArts Build服务首页](https://support.huaweicloud.com/usermanual-codeci/codeci_ug_2000.html#codeci_ug_2000__section743813333914)。
2. 单击需要配置构建加速的构建任务名称。
3. 单击页面右上角"编辑"按钮，进入构建任务的构建步骤配置页面。
4. 按照如下说明配置"CMake构建"构建步骤。 "工具版本"选择"cmake3.16.5-gcc7.3.0"，"命令"中填写如下代码。
   根据加速原理以及效果的不同，构建加速分为L1/L2/L3三种模式，请根据购买的加速规格使用加速命令，以下示例为开启L1模式加速。
   ```
   cmake -G'Unix Makefiles'../&& BuildAccelerateL1 make -j8
   //开启构建加速只需在make前添加加速命令：BuildAccelerateL1
   //切换模式只需将BuildAccelerate后的L1替换为L2/L3。
   //最大并发CPU核数，即make -j后面的数字，最大256。
   ```
   图1构建加速命令   
   ![](https://support.huaweicloud.com/usermanual-codeci/zh-cn_image_0000001910907950.png)
   - **加速命令只允许写在最外层，不允许通过shell脚本等调用。**
   
   - **同一次构建任务中禁止混用不同级别的加速命令，将无法保存与执行构建任务。**
     图2构建加速错误命令示例   
     ![](https://support.huaweicloud.com/usermanual-codeci/zh-cn_image_0000002171010741.png) 
    
5. 配置后单击"保存并执行"执行构建任务。
 
#### 配置CMake构建加速（代码化构建）
通过代码化构建方式实现构建加速，与图形化构建方法相同，修改工具版本并添加加速命令即可。
修改方法参考[CMake构建](https://support.huaweicloud.com/usermanual-codeci/codeci_ug_0010.html)中"代码化构建"部分，修改"image"和"command"参数，如[图3]所示。
图3代码化构建   
![](https://support.huaweicloud.com/usermanual-codeci/zh-cn_image_0000001992596045.png)
#### 如何判断构建加速是否生效
使用CMake构建加速成功后，日志会打印出相应加速模式的信息，如下图即为L3模式加速生效。
图4构建加速生效   
![](https://support.huaweicloud.com/usermanual-codeci/zh-cn_image_0000001944387125.png)
