---
title: 编译应用样例报错，提示找不到头文件-昇腾社区
description: 编译Ascend Sample仓中的样例应用程序源码时，报错提示找不到头文件acl.h。 报错示例如下：
keywords: AscendCL;编译
url: https://www.hiascend.com/document/caselibrary/detail/aclcase_0017-ZB8X6MlM
section: (其他)
---

# 编译应用样例报错，提示找不到头文件-昇腾社区

URL: https://www.hiascend.com/document/caselibrary/detail/aclcase_0017-ZB8X6MlM
描述: 编译Ascend Sample仓中的样例应用程序源码时，报错提示找不到头文件acl.h。 报错示例如下：
关键词: AscendCL;编译

昇腾文档 [了解详情](https://www.hiascend.com/document)

故障案例 [了解详情](https://www.hiascend.com/document/caselibrary)

编译应用样例报错，提示找不到头文件

编译应用样例报错，提示找不到头文件

2023/08/07

4k

问题信息

| 问题来源 | 产品大类 | 产品子类 | 关键字 |
| --- | --- | --- | ---|
| 官方 | 模型推理 | 应用开发AscendCL | AscendCL、编译 |

#### 问题现象描述

编译Ascend Sample仓 [了解详情](https://gitee.com/ascend/samples/tree/master/cplusplus)中的样例应用程序源码时，报错提示找不到头文件acl.h。

报错示例如下：

```
fatal error: acl/acl.h: No such file or directory
 #include "acl/acl.h"
          ^~~~~~~~~~~
compilation terminated.
CMakeFiles/main.dir/build.make:62: recipe for target 'CMakeFiles/main.dir/main.cpp.o' failed
make[2]: *** [CMakeFiles/main.dir/main.cpp.o] Error 1
CMakeFiles/Makefile2:67: recipe for target 'CMakeFiles/main.dir/all' failed
make[1]: *** [CMakeFiles/main.dir/all] Error 2
Makefile:129: recipe for target 'all' failed
```

#### 原因分析

编译应用源码依赖定义AscendCL接口的头文件，样例中的编译脚本是根据“{DDK_PATH}环境变量值/runtime/include/acl”目录查找编译依赖的头文件，当前报错提示找不到头文件，则可能是{DDK_PATH}环境变量配置不正确。

#### 解决措施

1. 登录编译源码的环境，使用如下命令查看{DDK_PATH}环境变量的值。

```
echo $DDK_PATH
```

回显信息示例如下：

```
/home/HwHiAiUser/Ascend/ascend-toolkit/latest
```

若无回显信息，则环境变量未配置，跳转到第3步配置该环境变量。
2. 根据第1步中获取到的{DDK_PATH}环境变量值，检查“{DDK_PATH}环境变量值/runtime/include/acl”路径以及该路径下的acl.h头文件是否存在。

检查路径是否存在时，可直接切换到该目录下看是否成功，命令示例如下：

```
cd /home/HwHiAiUser/Ascend/ascend-toolkit/latest/runtime/include/acl
```

若目录存在，可直接执行以下命令检查acl.h是否存在：

```
ll acl.h
```

若路径或头文件不存在，则需跳转到第3步重新配置{DDK_PATH}环境变量。
3. 配置环境变量。

- 当开发环境与运行环境的操作系统架构相同时，配置示例如下所示：

```
export DDK_PATH=$HOME/Ascend/ascend-toolkit/latest
```
- 当开发环境与运行环境的操作系统架构不同时，配置示例如下所示：

例如，当开发环境为X86架构、运行环境为AArch64架构时，则涉及交叉编译，需在开发环境上安装AArch64架构的软件包，将{DDK_PATH}环境变量的路径指向AArch64架构的软件包安装目录（如下所示），便于使用与运行环境架构相同的软件包中的头文件来编译代码。

```
export DDK_PATH=$HOME/Ascend/ascend-toolkit/latest/arm64-linux
```

注意：

- 您可以登录对应的环境，执行uname -a命令查询其操作系统的架构。
- 如果不清楚“Ascend-cann-toolkit”包的安装路径，也可以使用find -name "filename"命令，查找acl.h文件所在的路径，再配置环境变量。

若找不到acl.h文件，则需要重新安装“Ascend-cann-toolkit”包。

当环境上安装多个软件版本时，请根据实际情况选择版本，其中，latest目录默认指向最后安装的软件版本。

当同一个版本下有多个acl.h文件时，是由于兼容旧版本的原因，其中部分文件是软链接，方便用户在旧版本下编译应用源码。

本页内容

- 问题信息
- 问题现象描述
- 原因分析
- 解决措施
