gcc编译 与交叉编译(x86 to arm) (一)单个文件编译

1.1、gcc编译单个c++程序(hello.c)

gcc hello.c -o hello   (hello是生成的可执行程序的名字)

1.2、交叉编译hello.c

源平台: UOS_X86_64
目标平台:UOS_arm
方法:使用现成的交叉编译工具链
参考资料:交叉编译概念安装交叉编译器交叉编译入门

步骤1)去平台下载对应的工具链
https://www.linaro.org/downloads/
https://developer.arm.com/downloads/-/arm-gnu-toolchain-downloads

以上两个均可以下载,我下载的是
在这里插入图片描述
创建了一个目录:$HOME/local/X86ToArm,下载之后将其解压这个目录下面,会看到解压出的文件夹里包括了一堆文件夹,是arm的一些底层文件,其中bin文件中存在一个arm-linux-gnueabihf-gcc文件,是我们的交叉编译工具

步骤2)添加环境变量
vim /etc/profile 进入配置目录(或者~/.brashrc; profile作用于所有用户; brashrc作用于当前用户)
然后再末尾将上面解压的路径添加到PATH:(i: 进入编辑; Esc:退出编辑模式; :wq 保存并退出)
在这里插入图片描述
保存退出之后输入 source /etc/profile 重新加载配置文件; 然后输入arm-linux-gnueabihf-gcc -v 回车,如果这个交叉编译链可以成功起作用,就会加载出一堆信息,包括版本信息

步骤3)可以编译啦

arm-linux-gnueabihf-gcc hello.c -o hello_arm

运行上面的命令,就可以生成hello_arm的可执行程序,运行发现它在当前的x86下不能运行,拿到arm就可以成功输出hello world!

猜你喜欢

转载自blog.csdn.net/qq_41104439/article/details/130346968
今日推荐