diff --git a/tools/CItools/cmake/cmake_arm64_v8a_compilation_instructions.md b/tools/CItools/cmake/cmake_arm64_v8a_compilation_instructions.md new file mode 100644 index 0000000000000000000000000000000000000000..6b0008a172be056ecf1af9f42e2982cd03907a30 --- /dev/null +++ b/tools/CItools/cmake/cmake_arm64_v8a_compilation_instructions.md @@ -0,0 +1,121 @@ +# cmake工具arm64-v8a交叉编译说明 + +## 简介 +CMake是一个跨平台的编译安装工具。 + +## 编译步骤 + +### 编译工具链下载 + +- 64位编译工具:gcc-linaro-11.3.1-2022.06-x86_64_aarch64-linux-gnu.tar.xz [下载链接](https://snapshots.linaro.org/gnu-toolchain/11.3-2022.06-1/aarch64-linux-gnu/gcc-linaro-11.3.1-2022.06-x86_64_aarch64-linux-gnu.tar.xz) + +### 解压编译工具链 + +- 解压64位 gcc-linaro-11.3.1-2022.06-x86_64_aarch64-linux-gnu.tar.xz + + +- 进入解压后的文件夹,查看bin目录下就有我们编译用到的工具链 + +### 下载解压cmake源码 + +- 下载最新版本的cmake源码,[下载链接](https://cmake.org/files/v3.27/cmake-3.27.0-rc2.tar.gz) (以3.27-rc2为例) +- 通过tar命令解压源码 tar -xzvf cmake-3.27.0-rc2.tar.gz + +### 创建编译目录 + +- 进入源码解压后目录 cd cmake-3.27.0-rc2 +- 创建64位编译目录 mkdir arm64_v8a + +### 设置交叉编译环境 + +- 设置64位交叉编译环境, xxx 是表示工具链存放的目录路径 + + +```shell +export TOOLS=/xxx/gcc-linaro-11.3.1-2022.06-x86_64_aarch64-linux-gnu/bin +export AS=${TOOLS}/aarch64-linux-gnu-as +export CC=${TOOLS}/aarch64-linux-gnu-gcc +export CXX=${TOOLS}/aarch64-linux-gnu-g++ +export LD=${TOOLS}/aarch64-linux-gnu-ld +export STRIP=${TOOLS}/aarch64-linux-gnu-strip +export RANLIB=${TOOLS}/aarch64-linux-gnu-ranlib +export OBJDUMP=${TOOLS}/aarch64-linux-gnu-objdump +export OBJCOPY=${TOOLS}/aarch64-linux-gnu-objcopy +export NM=${TOOLS}/aarch64-linux-gnu-gcc-nm +export AR=${TOOLS}/aarch64-linux-gnu-ar +export LDFLAGS="-static" +``` + +### 生成makefile + +- 进入64位编译路径 cd arm64_v8a +- 执行如下命令生成makefile + +```shell +cmake ../ -L -DCMAKE_USE_OPENSSL=OFF -DBUILD_TESTING=OFF +``` + +### 编译cmake源码 + +在对应的编译目录执行 make VERBOSE=1,编译成功截图如下 + + ![make_file](media/make_success.png) + +### 编译完成 + +查看编译生成的文件ls bin/, 编译出来cmake ctest 就可以,并可通过file cmake 看到文件属性,必须是静态链接 + + ![64_file](media/64_file.png) + +### 安装cmake + +由于交叉编译不能make install安装cmake,故make install X86系统的cmake + +- 重新开一个窗口,进入cmake源码目录 + +- 创建一个host目录 + +```shell +mkdir host +``` + +- 进入host目录,执行 cmake生成makefile,命令如下 + +```shell +cmake ../ -L -DCMAKE_USE_OPENSSL=OFF -DCMAKE_INSTALL_PREFIX="${PWD}/install" +``` + +- 执行make install 进行编译安装,完成后可以看到Modules目录下的文件 + +![insatll_file](media/install.png) + +- 将./install/share/cmake-3.27/Modules/ 拷贝到交叉编译目录下 + +```shell +#重新进入交叉编译目录,新建share/cmake-3.27/目录 +cd ../arme64_v8a +mkdir -p share/cmake-3.27/ +cp ../host/install/share/cmake-3.27/Modules/ ./share/cmake-3.27/ -rf +``` + +### OHOS系统上运行 + +将编译目录文件压缩打包,发送到OHOS开发板中 + +```shell +#打包编译目录 +tar -zcvf arme64_v8a.tar.gz arm64_build/ +#发送到OHOS系统开发板上 +hdc file send xxx\arme64_v8a.tar.gz /data +#进入开发板/data,解压arme64_v8a.tar.gz +hdc shell +cd /data +tar -zxvf arme64_v8a.tar.gz +``` + +进入arme64_v8a/bin目录,执行./cmake -version 和 ./ctest -version 效果如下截图 + + ![run_file](media/run.png) + + + diff --git a/tools/CItools/cmake/cmake_armeabi_v7a_compilation_instructions.md b/tools/CItools/cmake/cmake_armeabi_v7a_compilation_instructions.md new file mode 100644 index 0000000000000000000000000000000000000000..bb7382e58374c3e8f908963c78740928b7f5544b --- /dev/null +++ b/tools/CItools/cmake/cmake_armeabi_v7a_compilation_instructions.md @@ -0,0 +1,121 @@ +# cmake工具armeabi_v7a 交叉编译说明 + +## 简介 +CMake是一个跨平台的编译安装工具。 + +## 编译步骤 + +### 编译工具链下载 + +- 32位编译工具:gcc-linaro-11.3.1-2022.06-x86_64_arm-linux-gnueabihf.tar.xz [下载链接](https://snapshots.linaro.org/gnu-toolchain/11.3-2022.06-1/arm-linux-gnueabihf/gcc-linaro-11.3.1-2022.06-x86_64_arm-linux-gnueabihf.tar.xz) + +### 解压编译工具链 + +- 解压32位 gcc-linaro-11.3.1-2022.06-x86_64_arm-linux-gnueabihf.tar.xz + + +- 进入解压后的文件夹,查看bin目录下就有我们编译用到的工具链 + +### 下载解压cmake源码 + +- 下载最新版本的cmake源码,[下载链接](https://cmake.org/files/v3.27/cmake-3.27.0-rc2.tar.gz) (以3.27-rc2为例) +- 通过tar命令解压源码 tar -xzvf cmake-3.27.0-rc2.tar.gz + +### 创建编译目录 + +- 进入源码解压后目录 cd cmake-3.27.0-rc2 +- 创建32位编译目录 mkdir armeabi_v7a + +### 设置交叉编译环境 + +- 设置32位交叉编译环境, xxx 是表示工具链存放的目录路径 + +```shell + +export TOOLS=/xxx/gcc-linaro-11.3.1-2022.06-x86_64_arm-linux-gnueabihf/bin +export AS=${TOOLS}/arm-linux-gnueabihf-as +export CC=${TOOLS}/arm-linux-gnueabihf-gcc +export CXX=${TOOLS}/arm-linux-gnueabihf-g++ +export LD=${TOOLS}/arm-linux-gnueabihf-ld +export STRIP=${TOOLS}/arm-linux-gnueabihf-strip +export RANLIB=${TOOLS}/arm-linux-gnueabihf-ranlib +export OBJDUMP=${TOOLS}/arm-linux-gnueabihf-objdump +export OBJCOPY=${TOOLS}/arm-linux-gnueabihf-objcopy +export NM=${TOOLS}/arm-linux-gnueabihf-gcc-nm +export AR=${TOOLS}/arm-linux-gnueabihf-ar +export LDFLAGS="-static" +``` + +### 生成makefile + +- 进入32位为 cd armeabi_v7a +- 执行如下命令生成makefile + +```shell +cmake ../ -L -DCMAKE_USE_OPENSSL=OFF -DBUILD_TESTING=OFF +``` + +### 编译cmake源码 + +在对应的编译目录执行 make VERBOSE=1,编译成功截图如下 + + ![make_file](media/make_32_success.png) + +### 编译完成 + +查看编译生成的文件ls bin/, 编译出来cmake ctest 就可以,并可通过file cmake 看到文件属性,必须是静态链接 + + ![32_file](media/32_file.png) + +### 安装cmake + +由于交叉编译不能make install安装cmake,故make install X86系统的cmake + +- 重新开一个窗口,进入cmake源码目录 + +- 创建一个host目录 + +```shell +mkdir host +``` + +- 进入host目录,执行 cmake生成makefile,命令如下 + +```shell +cmake ../ -L -DCMAKE_USE_OPENSSL=OFF -DCMAKE_INSTALL_PREFIX="${PWD}/install" +``` + +- 执行make install 进行编译安装,完成后可以看到Modules目录下的文件 + +![insatll_file](media/install.png) + +- 将./install/share/cmake-3.27/Modules/ 拷贝到交叉编译目录下 + +```shell +#重新进入交叉编译目录,新建share/cmake-3.27/目录 +cd ../armeabi_v7a +mkdir -p share/cmake-3.27/ +cp ../host/install/share/cmake-3.27/Modules/ ./share/cmake-3.27/ -rf +``` + +### OHOS系统上运行 + +将编译目录文件压缩打包,发送到OHOS开发板中 + +```shell +#打包编译目录 +tar -zcvf armeabi_v7a.tar.gz armeabi_v7a/ +#发送到OHOS系统开发板上 +hdc file send xxx\armeabi_v7a.tar.gz /data +#进入开发板/data,解压arm64_build.tar.gz +hdc shell +cd /data +tar -zxvf armeabi_v7a.tar.gz +``` + +进入arm64_build/bin目录,执行./cmake -version 和 ./ctest -version 效果如下截图 + + ![run_file](media/run.png) + + + diff --git a/tools/CItools/cmake/media/32_file.png b/tools/CItools/cmake/media/32_file.png new file mode 100644 index 0000000000000000000000000000000000000000..f463d14ec301655d8531e72d3ca42803ebffa6a9 Binary files /dev/null and b/tools/CItools/cmake/media/32_file.png differ diff --git a/tools/CItools/cmake/media/64_file.png b/tools/CItools/cmake/media/64_file.png new file mode 100644 index 0000000000000000000000000000000000000000..c667de2784171ee386f4c141290924ef8c6e8ec8 Binary files /dev/null and b/tools/CItools/cmake/media/64_file.png differ diff --git a/tools/CItools/cmake/media/install.png b/tools/CItools/cmake/media/install.png new file mode 100644 index 0000000000000000000000000000000000000000..689499a3048310b1c15f7438164e2b7a1b2b0cb2 Binary files /dev/null and b/tools/CItools/cmake/media/install.png differ diff --git a/tools/CItools/cmake/media/make_32_success.png b/tools/CItools/cmake/media/make_32_success.png new file mode 100644 index 0000000000000000000000000000000000000000..aa20beb0dff25350d7784c93fb0f1507a80faa6a Binary files /dev/null and b/tools/CItools/cmake/media/make_32_success.png differ diff --git a/tools/CItools/cmake/media/make_success.png b/tools/CItools/cmake/media/make_success.png new file mode 100644 index 0000000000000000000000000000000000000000..11afe48eff31cb3902c045bcef45fc6d23e91631 Binary files /dev/null and b/tools/CItools/cmake/media/make_success.png differ diff --git a/tools/CItools/cmake/media/run.png b/tools/CItools/cmake/media/run.png new file mode 100644 index 0000000000000000000000000000000000000000..41c73eb3e538ff0424c0fcdf23e56a37437148c4 Binary files /dev/null and b/tools/CItools/cmake/media/run.png differ