1# 一、Linux下的编译 2## 1.1 搭建Linux编译环境 3##### 【注】当前所有编译器的安装目录都在/opt/buidltools下,首先需要创建该目录并设置权限:mkdir -p /opt/buildtools && chmod -R 755 /opt/buildtools 4## 软件要求 51. SUSE Linux Enterprise Server 62. python 3.4+ 73. Cmake 84. GNU Arm Embedded Toolchain编译器,用于代码编译。 9## 1.2 安装编译器&构建器 10- #### 安装GNU Arm Embedded Toolchain编译器。 111. 下载编译器. 12- cortex_m4版本编译器,官方下载地址为:[GNU Arm Embedded Toolchain编译器](https://developer.arm.com/tools-and-software/open-source-software/developer-tools/gnu-toolchain/gnu-rm/downloads),指定版本:10-2020-q4-major。 13- armv8版本编译器,官方下载地址为:[gcc-arm-10.3-2021.07-x86_64-aarch64-none-elf.tar.xz](https://developer.arm.com/-/media/Files/downloads/gnu-a/10.3-2021.07/binrel/gcc-arm-10.3-2021.07-x86_64-aarch64-none-elf.tar.xz) 142. 解压编译器. 15- 可以参考如下命令完成解压: 16``` 17 tar -xvf gcc-arm-none-eabi-10-2020-q4-major-x86_64-linux.tar.bz2 -C /opt/buildtools 18 tar -xvf gcc-arm-10.3-2021.07-x86_64-aarch64-none-elf.tar.xz -C /opt/buildtools 19``` 20 21## 1.3 安装Cmake 221. 通过官网进行下载[Cmake](https://cmake.org/download/),下载指定版本3.20.5 232. 以tar包模式举例说明: 24- 通过命令进行解压: 25- tar -xvf cmake-3.20.5-Linux-x86_64.tar.gz -C /opt/buildtools 26 27## 1.4 安装Python 28##### 下面以python3.8为例介绍安装方法。 291. 通过[官网下载python源码包](https://gitee.com/link?target=https%3A%2F%2Fwww.python.org%2Fftp%2Fpython%2F3.8.5%2FPython-3.8.5.tgz)。 30 312. 解压源码包。 32 - 参考如下命令完成解压,将压缩包名替换为实际下载的源码包名: 33``` 34 tar -xf Python-3.8.5.tgz 35``` 363. 检查依赖。 37 - 解压后进入到目录中,执行./configure命令以检查编译与安装python所需的依赖: 38``` 39 cd Python-3.8.5 40 ./configure 41``` 42- 如果没有报错就继续下一步操作,如果存在报错就根据提示安装依赖。 434. 编译&安装python。 44``` 45 sudo make 46 sudo make install 47``` 485. 检查python版本并正确链接python命令。 49``` 50 python --version 51``` 52- 如果显示的不是刚刚安装的python版本,则需要执行以下命令来正确链接python命令。 53 54- a. 获取python目录,例如对于python 3.8.5,执行如下命令。 55 56``` 57 which python3.8 58``` 59- b. 链接python命令到刚刚安装的python包。 60 61 将以下命令中的 "python3.8-path" 替换为 "which python3.8" 命令执行后的回显路径: 62 63``` 64 cd /usr/bin && sudo rm python && sudo ln -s "python3.8-path" python 65``` 66- c. 再次检查python版本。 67 68``` 69 python --version 70``` 71## 1.5 安装pip包管理工具。 72 73##### 如果pip命令不存在,可以下载pip源码包进行安装。pip依赖setuptools,如果setuptools不存在,也需要安装。 74 751. 源码包方式安装: 76 77- 安装setuptools。 78 79- 点击[setuptools源代码包下载地址](https://gitee.com/link?target=https%3A%2F%2Fpypi.org%2Fproject%2Fsetuptools%2F),可以参考下面的命令进行安装: 80 81``` 82 sudo unzip setuptools-50.3.2.zip 83 cd setuptools 84 sudo python setup.py install 85``` 86 872. 安装pip。 88 89- 点击[pip源代码包下载地址](https://gitee.com/link?target=https%3A%2F%2Fpypi.org%2Fproject%2Fpip%2F),可以参考下面的命令进行安装: 90``` 91 sudo tar -xf pip-20.2.4.tar.gz 92 cd pip-20.2.4 93 sudo python setup.py install 94``` 95 96## 1.6 Linux下编译流程 97##### 参照上述步骤完成环境搭建后,即可按以下步骤完成编译。 981. 下载UniProton代码 99- git clone https://gitee.com/openeuler/UniProton.git 1002. 下载libboundscheck, 按照[指导](../platform/README.md)操作 1013. 执行编译 102- 进入到UniProton根目录下执行命令即可 103``` 104 python build.py m4 105``` 106 107 108# 二、提供镜像,用户自行下载 1091. 在虚拟机操作命令: 110 111 `docker pull swr.cn-north-4.myhuaweicloud.com/openeuler-embedded/uniproton:v002` 112 - 执行完成之后,创建容器并进入(默认挂载当前执行命令的目录为容器内的/home/uniproton目录) 113 114 `docker run -it -v $(pwd):/home/uniproton swr.cn-north-4.myhuaweicloud.com/openeuler-embedded/uniproton:v002` 1152. 下载代码 116 - 下载UniProton代码 117 `git clone https://gitee.com/openeuler/UniProton.git` 118 - 下载libboundscheck, 按照[指导](../platform/README.md)操作 119 1203. 执行编译 121 - 进入到UniProton根目录下执行命令即可 122``` 123 python build.py m4 124``` 125 126# 三、 编译结果 127 生成的静态库文件存放在output/UniProton/lib/cortex_m4目录下。 128