main.c测试内容
#include <stdio.h>
int main()
{
printf("hello\n");
return 0;
}
ubuntu装环境
sudo apt update
sudo apt install build-essential
sudo apt install gcc-multilib
sudo apt install -y flex
sudo apt install -y bison
sudo apt install -y qemu
sudo apt install -y qemu-system
sudo apt install -y qemu-user
sudo apt-get install gcc-arm-linux-gnueabi
x86 32位
生成汇编
x86 ATT 32位
main. c -> x86_32.s
gcc -O0 -o x86_32.s -S -masm=att -m32 -fno-exceptions -fno-asynchronous-unwind-tables -fno-builtin -fno-pie main.c
这个需要gcc−multilib正确装好(因为需要32位的lib)
运行
生成可执行文件 32位
gcc -m32 x86_32.s -o x86_32
qemu运行
qemu-i386 ./x86_32
或者./x86_32
,会隐式调用qemu
arm 32位
生成汇编
arm-linux-gnueabi-gcc -o arm.s -S -O0 main.c -fno-asynchronous-unwind-tables
运行
生成可执行文件
arm-linux-gnueabi-gcc arm.s -o arm -static
qemu运行
qemu-arm ./arm
或者./arm
,会隐式调用qemu