MacOS基于树莓派的交叉编译实验

来源:互联网 发布:kindle有用吗 知乎 编辑:程序博客网 时间:2024/06/03 14:21

  • 1写一个简单的helloworldc文件
  • 2通过arm的gcc编译
    • 1新建一个磁盘映像
    • 2从下面的链接下载已经编译完的arm GNU Linux 工具链
    • 3解压工具链压缩包到磁盘映像
    • 4配置arm语句的环境变量
    • 5编译
  • 3登录树莓派执行helloworld

1、写一个简单的helloworld.c文件

2、通过arm的gcc编译

  • 要使用arm-gcc来代替gcc编译,在macOS上还要进行一些配置:

1)新建一个磁盘映像

  • MAC OS的文件系统默认是大小写不敏感的,而交叉编译工具链是基于大小写敏感的文件系统的,所以我们不能直接把工具链安装在原来的文件系统中,而是需要新建一个大小写敏感的磁盘印象用于安装工具链。
    打开磁盘工具(disk utility),然后 文件->新建->空白磁盘映像,然后在弹出窗口中设置名称为arm-linux(便于后续操作),大小至少为1500M,格式为Mac OS扩展(区分大小写,日志式)的映像。它的位置在:
$ cd /Volumes/arm-linux/

2)从下面的链接下载已经编译完的arm GNU Linux 工具链

点击:下载工具

3)解压工具链压缩包到磁盘映像

  • 在终端进入压缩包所在的目录,执行下面的指令即可:
tar -zx -C /Volumes/arm-x/ --strip-components 1 -f ARMx-2009q3-67.tar.bz2

4)配置arm语句的环境变量

$ vim ~/.bash_profile

加入语句:

export PATH=$PATH:/Volumes/arm-linux/bin

更新环境变量:

$ source ~/.bash_profile

新增的arm命令可以在输入ar之后按tab查看。

5)编译:

  • 得到helloworld的可执行文件:
$ arm-none-linux-gnueabi-gcc helloworld.c -o helloworld 
  • 此时直接输入./helloworld命令会提示:
./helloworld: cannot execute binary file

3、登录树莓派执行helloworld

  • 移动helloworld到树莓派:
$ scp ./a.out pi@192.168.43.1:/home/pi/
  • 注意:树莓派的/home/目录下不能存放,提示权限错误

  • 树莓派上能够正确输出helloworld:

$ /home/pi/helloworld