Skip to content

01-安装交叉编译工具链和仿真器

建立工作目录

cd ~
mkdir dev && cd dev
mkdir object

安装依赖

安装编译工具

sudo apt update
sudo apt upgrade
sudo apt install gcc-arm-linux-gnueabi g++-arm-linux-gnueabi libc6-armhf-cross

测试安装结果

arm-linux-gnueabihf-gcc -v

能看到版本号就可以了

安装qemu

sudo apt install qemu qemu-system qemu-utils qemu-system-arm qemu-user

进行测试

创建文件

// hello.c
#include <stdio.h>
int main()
{
        printf("welcome!");
        return 0;
}
CC=arm-linux-gnueabi-gcc
CFLAGS=
all:hello

hello:hello.o
    $(CC) $(CFLAGS) hello.o -o hello

hello.o:hello.c
    $(CC) $(CFLAGS) -c hello.c -o hello.o

clean:
    rm -rf hello *.o

复制进去的时候要注意将空格换成tab

$ file hello
hello: ELF 32-bit LSB executable, ARM, EABI5 version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux.so.3, BuildID[sha1]=b7e950018ab60c39f2d5aa6b5574e433ada6b477, for GNU/Linux 3.2.0, not stripped

可以看到生成了arm程序

测试执行

guansheng@dive-into-cpp:~/dev/linux/testqemu$ qemu-arm -L /usr/arm-linux-gnueabi/ ./hello
welcome!