GE 离线编译指导

1. 在联网环境下进行以下准备工作

步骤一:代码仓下载

在联网环境中,进入本项目主页, 通过下载ZIPclone按钮,根据指导,完成源码下载。

步骤二:下载开源第三方软件依赖

GE在编译时,依赖的第三方开源软件列表如下:

开源软件 版本 下载地址
protobuf 25.1 protobuf-25.1.tar.gz
boost 1.87.0 boost_1_87_0.tar.gz
abseil-cpp 20230802.1 abseil-cpp-20230802.1.tar.gz
c-ares 1.19.1 c-ares-1.19.1.tar.gz
benchmark 1.8.3 benchmark-1.8.3.tar.gz
grpc 1.60.0 grpc-1.60.0.tar.gz
googletest 1.14.0 googletest-1.14.0.tar.gz
json 3.11.3 json-3.11.3.tar.gz
openssl 3.0.9 openssl-openssl-3.0.9.tar.gz
re2 2024-02-01 re2-2024-02-01.tar.gz
symengine 0.12.0 symengine-0.12.0.tar.gz
zlib 1.2.13 zlib-1.2.13.tar.gz
makeself 2.5.0 makeself-release-2.5.0-patch1.tar.gz
mockcpp 2.7 mockcpp-2.7.tar.gz
libseccomp 2.5.4 libseccomp-2.5.4.tar.gz
  • 方式一(推荐):通过GE仓提供一键式第三方软件下载打包脚本,使用方法如下:

    # 在联网环境中,GE仓根目录执行
    cd ge
    bash scripts/download_third_party_source.sh
    

    执行成功后会在GE仓根目录生成opensource.tar.gz

  • 方式二:通过第三方开源软件列表链接逐个下载三方开源软件包

2. 完成联网环境准备后登录测试环境(离线)继续进行编译准备

场景一:使用一键式第三方软件下载打包脚本下载的三方软件

连接至测试环境(离线),上传联网环境获取到的代码仓三方软件依赖源码至您指定的目录下。下载的为压缩包,还需进行解压。

解压后项目结构如下:

├── ge                               # ge仓源码解压后目录
│  ├── api
│  ├── base
│  └── ...
├── opensource                       # 三方软件依赖解压后目录
│  └── abseil-cpp
|     └── abseil-cpp-20230802.1.tar.gz
│  └── benchmark
|     └── benchmark-1.8.3.tar.gz
│  └── ...

进入代码仓根目录,可通过如下命令进行目录调整:

# 将opensource目录下的文件移动至ge仓
cd ge
mkdir output output/third_party
cp -r ../opensource/* output/third_party
rm -rf ../opensource

调整后的项目结构如下:

├── ge                               # ge仓源码解压后目录
│  ├── api
│  ├── base
│  ├── ...
│  └── output                        # 三方软件默认目录
│     └── third_party
│         └── abseil-cpp
|             └── abseil-cpp-20230802.1.tar.gz
│         └── benchmark
|             └── benchmark-1.8.3.tar.gz
│         └── ...

完成后回到构建验证-编译章节,继续进行编译

场景二:通过第三方开源软件列表链接逐个手动下载第三方软件

  1. 连接至测试环境(离线),上传联网环境获取到的代码仓三方软件依赖源码至您指定的目录下,其中代码仓为压缩包,需进行解压。

  2. 进入代码仓根目录,创建output/third_party并将三方软件包放在该目录下。

# 创建output/third_party目录
cd ge
mkdir output output/third_party

调整后的项目结构如下:

├── ge                               # ge仓源码解压后目录
│  ├── api
│  ├── base
│  ├── ...
│  └── output                        # 三方软件默认目录
│     └── third_party
│        ├── abseil-cpp-20230802.1.tar.gz
│        ├── benchmark-1.8.3.tar.gz
│        └── ...

完成后回到构建验证-编译章节,继续进行编译