---
title: BC文件生成
description: "BC文件用于内存一致性检查和向量化检查。"
url: https://www.hikunpeng.com/document/detail/zh/kunpengdevkithistory/devkit_24_rc2/cliuserguide/KunpengDevKitCli_0043.html
sourcePath: /source/zh/kunpengdevkithistory/devkit_24_rc2/cliuserguide/KunpengDevKitCli_0043.html
indexId: ef050b6450e903a7d58cfbf8659a62ca162738e69775d9bb86a0f206f9b0987f85
---
# BC文件生成

BC文件用于内存一致性检查和向量化检查。

#### 命令功能

通过扫描源码文件生成对应的BC文件。

生成BC文件之前需要修改构建文件：

- 替换编译命令：若构建文件中有gcc、g++、gfortran或ld，需要替换成对应的gclang、gclang++、gflang或llvm-link。
  llvm-link不支持链接库文件，若ld命令中存在库文件，请根据所使用的代码语言，使用gclang、gclang++、gflang替换ld命令。

- 调整编译选项：修改优化等级“-O0”，增加“-g -fno-inline-functions”。


#### 命令格式

```
devkit advisor bc-gen {-i INPUT_PATH | --input INPUT_PATH} {-c COMMAND | --cmd COMMAND} [-o OUTPUT_PATH | --output OUTPUT_PATH] [-l {0,1,2,3} | --log-level {0,1,2,3}] [--set-timeout TIMEOUT]
```


#### 参数说明


**表1 参数说明**

| 参数 | 参数选项 | 参数说明 |
| --- | --- | --- |
| \-h/\-\-help | \- | 获取帮助信息。 |
| \-i/\-\-input | \- | 需要生成BC文件的源码文件夹路径。 说明： 若源码文件包含多个子目录且在编译时多个子目录之间相互依赖，单独扫描子目录时，请输入整个源码文件，在\-c参数中增加cd命令进入到子目录中。 |
| \-c/\-\-cmd | \- | 源码的构建命令。 |
| \-o/\-\-output | \- | 生成BC文件的存放路径，需要有写权限。报告默认存放在当前路径下，名称默认为“模块名\_时间戳”。 |
| \-\-set\-timeout | \- | 任务超时时间，单位为分钟，若执行时间超过超时时间则退出执行。默认无超时时间，任务将持续执行直到结束。 |
| \-l/\-\-log\-level | 0/1/2/3 | 设置日志级别，默认为1。 0：日志级别为DEBUG。 1：日志级别为INFO。 2：日志级别为WARNING。 3：日志级别为ERROR。 |


#### 使用示例

此处以扫描“/home/test”下源码文件，编译命令为make，BC文件保存在“/home/test/bc_files”下为例。

```
devkit advisor bc-gen -i /home/test -c make -o /home/test/bc_files
```

返回信息如下，并输出报告。
```
Executing bc generate task, please wait...
Current progress:
Scanned time: 20240110200505123
Configuration:
Scan source code path: /home/test
Generate bc files path: /home/test/bc_files
Task Timeout Interval: The timeout period is not set.
Log level: info
Summary:
Scanned all source files, there are 2 bc files generated.
For the detail information, please check
/home/test/bc_files/bc-gen_20240110200505123_0c24
```
