GE 离线编译指导
1. 在联网环境下进行以下准备工作
步骤一:代码仓下载
在联网环境中,进入本项目主页, 通过下载ZIP或clone按钮,根据指导,完成源码下载。
步骤二:下载开源第三方软件依赖
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
│ └── ...
完成后回到构建验证-编译章节,继续进行编译
场景二:通过第三方开源软件列表链接逐个手动下载第三方软件
-
进入代码仓根目录,创建
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
│ └── ...
完成后回到构建验证-编译章节,继续进行编译