区块链技术博客
www.b2bchain.cn

MacOS 下交叉编译的折腾笔记求职学习资料

本文介绍了MacOS 下交叉编译的折腾笔记求职学习资料,有助于帮助完成毕业设计以及求职,是一篇很好的资料。

对技术面试,学习经验等有一些体会,在此分享。

这是这个系列 “折腾笔记” 的第一篇,希望能用更直白的方式去展现交叉编译的时候做了些什么。因此,这个教程并不是最佳实践,但是可以让小伙伴们有一个更直白的理解。之后,我会把笔记的重点放在 bazel 上交叉编译的最佳实践,并配一些小的实践案例,如交叉编译能在树莓派上运行的含有深度学习模型的小程序。
PS:个人平时用的电脑的系统是 MacOS,值得一提的是 MacOS 不等于 Linux。它的交叉编译其实有很多坑,比如 tensorflowlite 中提供的交叉编译的工具或 Linaro 只能在 Linux 下通过。因此,个人建议 MacOS 下的交叉编译方式为采用 docker 运行 Linux 系统然后进行交叉编译。

关于交叉编译的小理解与实践思路

交叉编译其实就是使用能够把代码源码转换为目标平台机器语言的编译器。比如,树莓派的就需要的是不是 x86 的 gcc 而是支持 arm 处理器的 arm-linux-gnueabihf-gcc。那么是不是我们把相关的依赖环境搞过来就可以编译了呢?我个人认为是的,于是进行一番调研,还真的发现了一个想法相似的教程。这个方法的核心就是把树莓派上的环境拷过来,然后使用 llvm 结合 arm-linux-gnueabihf-binutils 进行交叉编译。

实践步骤

使用 brew 安装一些依赖项

brew install arm-linux-gnueabihf-binutils llvm rsync  # brew 的管网安装脚本如下 、 # /bin/bash -c "$(curl -fsSL <https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh>)" 从树莓派上拷过来相关的 gcc 和其相关环境 rsync -rzLR --safe-links        pi@raspberrypi:/usr/lib/arm-linux-gnueabihf        pi@raspberrypi:/usr/lib/gcc/arm-linux-gnueabihf        pi@raspberrypi:/usr/include        pi@raspberrypi:/lib/arm-linux-gnueabihf        sysroot/ # 这里面的 pi 是树莓派的 ip 或者 ssh 别名。 # raspberrypi 是树莓派中的用户名 # 如,gpu@deamov 代表着 ssh 的别名为 gpu,deamov 是我的用户

检查下当前的目录

. ├── hello_cross_compile.cc └── sysroot # 这个就是我们刚才用 rsync 传过来的根目录     ├── lib     └── usr

hello_cross_comile.cc 的内容如下
“`

include

这是这个系列 “折腾笔记” 的第一篇,希望能用更直白的方式去展现交叉编译的时候做了些什么。因此,这个教程并不是最佳实践,但是可以让小伙伴们有一个更直白的理解。之后,我会把笔记的重点放在 bazel 上交叉编译的最佳实践,并配一些小的实践案例,如交叉编译能在树莓派上运行的含有深度学习模型的小程序。
PS:个人平时用的电脑的系统是 MacOS,值得一提的是 MacOS 不等于 Linux。它的交叉编译其实有很多坑,比如 tensorflowlite 中提供的交叉编译的工具或 Linaro 只能在 Linux 下通过。因此,个人建议 MacOS 下的交叉编译方式为采用 docker 运行 Linux 系统然后进行交叉编译。

关于交叉编译的小理解与实践思路

交叉编译其实就是使用能够把代码源码转换为目标平台机器语言的编译器。比如,树莓派的就需要的是不是 x86 的 gcc 而是支持 arm 处理器的 arm-linux-gnueabihf-gcc。那么是不是我们把相关的依赖环境搞过来就可以编译了呢?我个人认为是的,于是进行一番调研,还真的发现了一个想法相似的教程。这个方法的核心就是把树莓派上的环境拷过来,然后使用 llvm 结合 arm-linux-gnueabihf-binutils 进行交叉编译。

实践步骤

使用 brew 安装一些依赖项

brew install arm-linux-gnueabihf-binutils llvm rsync  # brew 的管网安装脚本如下 、 # /bin/bash -c "$(curl -fsSL <https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh>)" 从树莓派上拷过来相关的 gcc 和其相关环境 rsync -rzLR --safe-links        pi@raspberrypi:/usr/lib/arm-linux-gnueabihf        pi@raspberrypi:/usr/lib/gcc/arm-linux-gnueabihf        pi@raspberrypi:/usr/include        pi@raspberrypi:/lib/arm-linux-gnueabihf        sysroot/ # 这里面的 pi 是树莓派的 ip 或者 ssh 别名。 # raspberrypi 是树莓派中的用户名 # 如,gpu@deamov 代表着 ssh 的别名为 gpu,deamov 是我的用户

检查下当前的目录

. ├── hello_cross_compile.cc └── sysroot # 这个就是我们刚才用 rsync 传过来的根目录     ├── lib     └── usr

hello_cross_comile.cc 的内容如下
“`

include

这是这个系列 “折腾笔记” 的第一篇,希望能用更直白的方式去展现交叉编译的时候做了些什么。因此,这个教程并不是最佳实践,但是可以让小伙伴们有一个更直白的理解。之后,我会把笔记的重点放在 bazel 上交叉编译的最佳实践,并配一些小的实践案例,如交叉编译能在树莓派上运行的含有深度学习模型的小程序。
PS:个人平时用的电脑的系统是 MacOS,值得一提的是 MacOS 不等于 Linux。它的交叉编译其实有很多坑,比如 tensorflowlite 中提供的交叉编译的工具或 Linaro 只能在 Linux 下通过。因此,个人建议 MacOS 下的交叉编译方式为采用 docker 运行 Linux 系统然后进行交叉编译。

关于交叉编译的小理解与实践思路

交叉编译其实就是使用能够把代码源码转换为目标平台机器语言的编译器。比如,树莓派的就需要的是不是 x86 的 gcc 而是支持 arm 处理器的 arm-linux-gnueabihf-gcc。那么是不是我们把相关的依赖环境搞过来就可以编译了呢?我个人认为是的,于是进行一番调研,还真的发现了一个想法相似的教程。这个方法的核心就是把树莓派上的环境拷过来,然后使用 llvm 结合 arm-linux-gnueabihf-binutils 进行交叉编译。

实践步骤

使用 brew 安装一些依赖项

brew install arm-linux-gnueabihf-binutils llvm rsync  # brew 的管网安装脚本如下 、 # /bin/bash -c "$(curl -fsSL <https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh>)" 从树莓派上拷过来相关的 gcc 和其相关环境 rsync -rzLR --safe-links        pi@raspberrypi:/usr/lib/arm-linux-gnueabihf        pi@raspberrypi:/usr/lib/gcc/arm-linux-gnueabihf        pi@raspberrypi:/usr/include        pi@raspberrypi:/lib/arm-linux-gnueabihf        sysroot/ # 这里面的 pi 是树莓派的 ip 或者 ssh 别名。 # raspberrypi 是树莓派中的用户名 # 如,gpu@deamov 代表着 ssh 的别名为 gpu,deamov 是我的用户

检查下当前的目录

. ├── hello_cross_compile.cc └── sysroot # 这个就是我们刚才用 rsync 传过来的根目录     ├── lib     └── usr

hello_cross_comile.cc 的内容如下
“`

include

部分转自互联网,侵权删除联系

赞(0) 打赏
部分文章转自网络,侵权联系删除b2bchain区块链学习技术社区 » MacOS 下交叉编译的折腾笔记求职学习资料
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

b2b链

联系我们联系我们