一、什么是交叉编译
在一种计算机环境中运行的编译程序,能编译出在另外一种环境下运行的代码,我们就称这种编译器支持交叉编译。这个编译过程就叫交叉编译。简单地说,就是在一个平台上生成另一个平台上的可执行代码。
要进行交叉编译,我们需要在主机平台上安装对应的交叉编译工具链(crosscompilation tool chain),然后用这个交叉编译工具链编译我们的源代码,最终生成可在目标平台上运行的代码。
二、VMware Workstation安装银河麒麟V10系统
1.下载 银河麒麟系统V10 桌面版镜像包
Kylin-Desktop-V10-SP1-General-Release-2303-X86_64.iso
2.运行VMware Workstation,创建虚拟机
以管理员身份运行VMware Workstation,创建新的虚拟机
虚拟机安装地址自定义
处理器和内存根据自己物理机情况分配
根据需要自定义设置磁盘大小
三、环境安装
1.安装java环境
jdk下载地址:https://www.oracle.com/java/technologies/downloads/
安装jdk
#进入/usr/local目录
cd /usr/local
#创建java文件夹
mkdir java
#把JDK压缩文件放进来,然后解压
tar -zxvf jdk-8u171-linux-x64.tar.gz
#设置JDK环境变量
vim /etc/profile
#输入i编辑文件,在profile最后追加JAVA_HOME和PATH
export JAVA_HOME=/usr/local/java/jdk1.8.0_171
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
#编辑完成按ESC,然后:wq保存
#刷新配置文件,使配置文件产生作用
source /etc/profile
#测试java是否安装成功
java -version
2.安装交叉编译器(x86服务器)
2.1安装C开发环境
apt-get install build-essential
2.2.在/usr/local下新建ARM-toolchain文件夹
mkdir /usr/local/ARM-toolchain
2.3 下载交叉编译工具链压缩包
cd /usr/local/ARM-toolchain
wget https://releases.linaro.org/components/toolchain/binaries/latest-5/aarch64-linux-gnu/gcc-linaro-5.5.0-2017.10-x86_64_aarch64-linux-gnu.tar.xz
也可以从网页下载,上传到/usr/local/ARM-toolchain目录下,下载地址:
https://releases.linaro.org/components/toolchain/binaries/latest-5/aarch64-linux-gnu/
下载完成后,解压tar包
tar -xvf gcc-linaro-5.5.0-2017.10-x86_64_aarch64-linux-gnu.tar.xz
2.4配置交叉编译器环境变量
修改配置文件
vim /etc/bash.bashrc
在配置文件的最后一行加入路径配置
# Add ARM toolschain path
PATH=${PATH}:/usr/local/ARM-toolchain/gcc-linaro-5.5.0-2017.10-x86_64_aarch64-linux-gnu/bin
使用source命令执行刚修改的配置文件
source /etc/bash.bashrc
测试
aarch64-linux-gnu-gcc -v
四、测试交叉编译
1.新建测试程序
#创建hello.c
vim hello.c
#编辑程序
#include <stdio.h>
int main(void)
{
printf("hello linux\n");
return 0;
}
#交叉编译
aarch64-linux-gnu-gcc -o arm-hello hello.c
2.华为云鲲鹏服务器运行测试
华为云服务器地址:
https://releases.linaro.org/components/toolchain/binaries/latest-5/aarch64-linux-gnu/
登录云服务器,新建测试文件夹
上传刚编译好的 arm-hello 文件
执行文件