下载
中文
注册

工程编译

在udf_workspace/01_udf_add目录下创建build和release目录:

编译完成后在workspace/udf_add/release目录下生成编译成功的so。

  1. 创建build目录。
    mkdir -p build
  2. 创建release目录。
    mkdir -p release
  3. 进入build目录。
    cd build
  4. 工程编译
    • 非交叉编译场景(开发环境和运行环境的架构一致)下示例如下:编译x86_64类型的so,指定target lib为libadd.so,编译工具为g++。
      cmake .. -DTOOLCHAIN=g++ -DRELEASE_DIR=../release -DRESOURCE_TYPE=X86 -DUDF_TARGET_LIB=add && make
      • -DTOOLCHAIN:编译工具名称。比如g++。
      • -DRELEASE_DIR:编译完成后,目标文件存放路径。
      • -DRESOURCE_TYPE:编译的资源类型,可以取值:X86或者Aarch或者Ascend。
        • X86:目标so需要部署在X86架构的Host时,配置为X86。
        • Aarch:目标so需要部署在Aarch的Host时,配置为Aarch。
        • Ascend:目标so需要部署在Device时,配置为Ascend。
      • -DUDF_TARGET_LIB:编译完成后,目标so的名称。比如,设置为add,实际生成libadd.so。
    • 交叉编译(开发环境是x86_64,运行环境是aarch64)场景下,编译Ascend类型的so, 指定target lib为libadd.so,编译工具为${INSTALL_DIR}/toolkit/toolchain/hcc/bin/aarch64-target-linux-gnu-g++。${INSTALL_DIR}请替换为CANN软件安装后文件存储路径。例如,若安装的Ascend-cann-toolkit软件包,则安装后文件存储路径为:$HOME/Ascend/ascend-toolkit/latest。
      示例如下:
      cmake .. -DTOOLCHAIN=${INSTALL_DIR}/toolkit/toolchain/hcc/bin/aarch64-target-linux-gnu-g++ -DRELEASE_DIR=../release -DRESOURCE_TYPE=Ascend -DUDF_TARGET_LIB=add && make