---
title: AscendCL初始化与去初始化
description: "您必须调用aclInit接口初始化AscendCL，配置文件内容为json格式。"
url: https://www.hiascend.com/document/detail/zh/Atlas200IDKA2DeveloperKit/latest/Application%20Development%20Guide/aadgc/aclcppdevg_000011.html
sourcePath: /source/zh/Atlas200IDKA2DeveloperKit/23.0.RC2/Application Development Guide/aadgc/aclcppdevg_000011.html
indexId: d21c45f1e339c6b2680a7c45fa8d30e60f6574363e87278dcd038f8c6505d0e3104
---
# AscendCL初始化与去初始化

#### 基本原理

您必须调用aclInit接口初始化AscendCL，配置文件内容为json格式。

如果当前的默认配置已满足需求，无需修改，可向aclInit接口中传入NULL，或者可将配置文件配置为空json串（即配置文件中只有{}）。向aclInit接口中传入空指针的示例如下：```
aclError ret = aclInit(NULL);
```


有初始化就有去初始化，在确定完成了AscendCL的所有调用之后，或者进程退出之前，需调用aclFinalize接口实现AscendCL去初始化。

#### 示例代码

您可以从样例介绍中获取完整样例代码。

调用接口后，需增加异常处理的分支，并记录报错日志、提示日志，此处不一一列举。以下是关键步骤的代码示例，不可以直接拷贝编译运行，仅供参考。

```
// 初始化
// 此处的..表示相对路径，相对可执行文件所在的目录
// 例如，编译出来的可执行文件存放在out目录下，此处的..就表示out目录的上一级目录
const char *aclConfigPath = "../src/acl.json";
aclError ret = aclInit(aclConfigPath);

// ......

// 去初始化
ret = aclFinalize();
// ......
```
