---
title: 头文件和库文件说明
description: "CANN应用开发场景涉及Runtime、图引擎（Graph Engine，简称GE）和DVPP（Digital Vision Pre-Processing）等组件提供的接口。各组件提供的接口及其详细说明，请参见各组件的API参考。本节仅介绍接口分类以及调用接口时依赖的头文件和库文件。"
url: https://www.hiascend.com/document/detail/zh/canncommercial/latest/programug/acldevg/aclcppdevg_000523.html
sourcePath: /source/zh/canncommercial/900/programug/acldevg/aclcppdevg_000523.html
indexId: 1610c5200409223db77fac09452786f40d13f5c58b6176d0c7e87b3a4c692be770
---
# 头文件和库文件说明

CANN应用开发场景涉及Runtime、图引擎（Graph Engine，简称GE）和DVPP（Digital Vision Pre-Processing）等组件提供的接口。各组件提供的接口及其详细说明，请参见各组件的API参考。本节仅介绍接口分类以及调用接口时依赖的头文件和库文件。

#### 接口分类

接口名以acl作为前缀，命名风格为：acl+接口类别缩写+*，其中，*通常表示操作动词和对象，均采用首字母大写。下文为了描述方便，将本文中的接口统称为acl接口。

在acl接口中，参数顺序通常遵循输入参数在前、输出参数在后的原则。且需注意，不要因为某些参数是新增的，就将其随意添加到接口的末尾；相反，应将新的仅作为输入的参数放在输出参数之前。对于同时作为输入和输出的参数，情况会相对复杂，可能还需考虑与其他接口的一致性，需灵活处理。


**表1 接口类别列表**

| 接口名前缀 | 描述 | 组件 |
| --- | --- | --- |
| acl | 系统配置类接口 | Runtime |
| aclrt | 运行时管理类的接口 | Runtime |
| aclop | 单算子模型执行类的接口 | Runtime |
| aclblas | blas类接口 | Graph Engine |
| aclmdl | 模型推理类的接口 | Graph Engine |
| acldvpp或aclvdec或aclvenc | 媒体数据处理的接口 其中，媒体数据处理V2版本下的接口命名例外，这一类接口命名以“hi\_mpi”开头。 | DVPP（Digital Vision Pre\-Processing） |
| aclprof | Profiling配置类接口 | Runtime |
| acltdt | 数据传输接口 | Runtime |
| aclfv | 特征向量检索接口 | Feature Vector |


由于软硬件差异，各产品型号支持的接口类别不同，具体以各接口说明为准。


#### 调用接口依赖的头文件和库文件说明

安装固件、驱动及CANN软件包后，编译、运行应用程序时才能引用到acl接口的头文件、库文件。

acl接口的头文件在“${INSTALL_DIR}/include/”目录下，库文件在“${INSTALL_DIR}/lib64/”目录下。${INSTALL_DIR}请替换为CANN软件安装后文件存储路径。以root用户安装为例，安装后文件默认存储路径为：/usr/local/Ascend/cann。

您需要根据实际使用的acl接口来include依赖的文件，各头文件的用途如下表所示。

编译acl接口程序时，请按照include的头文件依赖对应的库文件，如果引用多余的库文件（例如libascendcl.a），可能导致版本功能异常或后续版本升级时存在兼容性问题。


**表2 Runtime组件头文件和库文件列表**

| 定义接口的头文件 | 用途 | 对应的库文件 |
| --- | --- | --- |
| acl/acl\_rt.h | 用于定义初始化/去初始化、Device管理、Context管理、Stream管理、同步等待、内存管理等接口。 | libacl\_rt.so 说明：为了兼容旧版本，旧版本中支持使用libascendcl.so，但后续版本这种方式会废弃，建议使用libacl\_rt.so，防止后续版本出现兼容性问题。 |
| acl/acl\_dump.h | 用于定义模型和算子Dump接口。 | libascend\_dump.so |
| acl/acl\_prof.h | 用于定义Profiling数据采集接口。 | libmsprofiler.so 说明：为了兼容旧版本，旧版本中支持使用libascendcl.so，但后续版本这种方式会废弃，建议使用libmsprofiler.so，防止后续版本出现兼容性问题。 |
| acl/acl\_tdt.h | 用于定义Tensor数据传输接口。 | libacl\_tdt\_channel.so |
| acl/acl\_tdt\_queue.h | 用于定义共享队列管理、共享Buffer管理接口。 | libacl\_tdt\_queue.so |


**表3 Graph Engine组件头文件列表**

| 定义接口的头文件 | 用途 | 对应的库文件 |
| --- | --- | --- |
| acl/acl\_mdl.h | 用于定义模型管理接口。 | libacl\_mdl.so 说明：为了兼容旧版本，旧版本中支持使用libascendcl.so，但后续版本这种方式会废弃，建议使用libacl\_mdl.so，防止后续版本出现兼容性问题。 |
| acl/acl\_op.h acl/acl\_op\_compiler.h | 用于定义单算子调用接口（仅包含单算模型执行接口）。 | libacl\_op\_executor.so libacl\_op\_compiler.so 说明：为了兼容旧版本，旧版本中支持使用libascendcl.so，但后续版本这种方式会废弃，建议使用libacl\_op\_executor.so和libacl\_op\_compiler.so，防止后续版本出现兼容性问题。 |
| acl/ops/acl\_cblas.h | 用于定义CBLAS接口。 | libacl\_cblas.so |


**表4 DVPP组件头文件和库文件列表**

| 分类 | 定义接口的头文件 | 用途 | 对应的库文件 |
| --- | --- | --- | --- |
| 媒体数据处理算子 | acldvppop目录下： acldvpp\_base.h acldvpp\_op\_api.h | 用于定义DVPP媒体数据处理类算子的功能接口。 | libacl\_dvpp\_op.so |
| 媒体数据处理算子 | aclnn目录下： acl\_meta.h aclnn\_base.h | 调用算子接口时依赖的公共Meta接口，如创建aclTensor、aclScalar、aclIntArray等。 | libnnopbase.so |
| 媒体数据处理V2 | acl/dvpp/hi\_dvpp.h | 用于定义媒体数据处理V2版本中的DVPP接口。 | libacl\_dvpp\_mpi.so |
| 媒体数据处理V2 | acl/media目录下： hi\_mpi\_vi.h hi\_common\_vi.h hi\_common\_dis.h hi\_common\_gdc.h hi\_media\_common.h hi\_media\_type.h hi\_mpi\_sys.h | 用于定义VI（Video Input）视频数据获取功能的接口。 | libacl\_vi\_mpi.so libacl\_dvpp\_mpi.so |
| 媒体数据处理V2 | acl/media目录下： hi\_mpi\_isp.h hi\_common\_isp.h hi\_common\_3a.h hi\_mpi\_ae.h hi\_common\_ae.h hi\_mpi\_awb.h hi\_common\_awb.h hi\_common\_sns.h hi\_media\_common.h hi\_media\_type.h hi\_mpi\_sys.h | 用于定义ISP（Image Signal Processing）系统控制功能的接口。 | libacl\_isp\_ae\_mpi.so libacl\_isp\_awb\_mpi.so libacl\_isp\_mpi.so libacl\_dvpp\_mpi.so |
| 媒体数据处理V2 | acl/media目录下： hi\_mpi\_vpss.h hi\_media\_common.h hi\_media\_type.h hi\_mpi\_sys.h | 用于定义VPSS（Video Process Sub\-System）图像处理功能的接口。 | libacl\_vpss\_mpi.so libacl\_dvpp\_mpi.so |
| 媒体数据处理V2 | acl/media/hi\_mipi\_rx.h | 用于定义MIPI Rx ioctl命令字。 | \- |
| 媒体数据处理V2 | acl/media目录下： hi\_mpi\_audio.h hi\_common\_aio.h | 用于定义音频输入、音频输出功能的接口。 | libacl\_audio\_mpi.so |
| 媒体数据处理V2 | acl/media/hi\_acodec.h | 用于定义音量调整的命令字。 | \- |
| 媒体数据处理V2 | acl/media目录下： hi\_common\_vo.h hi\_mpi\_vo.h | 用于定义视频输出接口。 | libacl\_vo\_mpi.so |
| 媒体数据处理V2 | acl/media/hi\_mpi\_hdmi.h | 用于定义对接外设的HDMI接口。 | libacl\_hdmi\_mpi.so |
| 媒体数据处理V2 | acl/media/hi\_mpi\_tde.h | 用于定义TDE图形绘制接口。 | libacl\_tde\_mpi.so |
| 媒体数据处理V2 | acl/media/hifb.h | 用于定义叠加图形层管理接口。 | \- |
| 媒体数据处理V1 | acl/ops/acl\_dvpp.h | 用于定义媒体数据处理V1版本的接口。 | libacl\_dvpp.so |


**表5 特征向量检索头文件和库文件**

| 定义接口的头文件 | 用途 | 对应的库文件 |
| --- | --- | --- |
| acl/ops/acl\_fv.h | 用于定义特征向量检索的接口。 | libacl\_retr.so |
