首页 > 后端开发 > C++ > 正文

如何在 Ubuntu 上交叉编译 Raspberry Pi?

Susan Sarandon
发布: 2024-11-17 07:22:03
原创
170 人浏览过

How to Cross-Compile for Raspberry Pi on Ubuntu?

在 Ubuntu 上对 Raspberry Pi 进行交叉编译

要在 Ubuntu 上启用 Raspberry Pi 的交叉编译,您需要安装以下必备包:

apt-get install git rsync cmake libc6-i386 lib32z1 lib32stdc++6
登录后复制

获取工具链

在您的主目录中创建一个名为 raspberrypi 的文件夹,并使用 Git 下载工具链:

git clone git://github.com/raspberrypi/tools.git
登录后复制

选择编译器

在 raspberrypi/tools 文件夹中选择 gcc-linaro-arm-linux-gnueabihf-raspbian 工具链。

将编译器添加到您的路径

编辑 .bashrc 文件并添加以下行:

export PATH=$PATH:$HOME/raspberrypi/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian/bin
登录后复制

加载 PATH 更改

重新启动终端会话或运行 . ~/.bashrc 以应用 PATH 修改。

验证编译器

执行arm-linux-gnueabihf-gcc -v 以验证编译器的安装。它应该显示有关所选工具链的信息。

创建 Rootfs 和 CMake 配置

要解决缺少共享库的问题,请执行以下附加步骤:

  1. 在你的 raspberrypi 目录中创建一个 rootfs 文件夹。
  2. 使用 rsync 将 /lib 和 /usr 目录从 Raspberry Pi 复制到 Ubuntu 计算机上的 rootfs 目录:

    rsync -rl --delete-after --safe-links [email protected]:/{lib,usr} $HOME/raspberrypi/rootfs
    登录后复制
  3. 在raspberrypi文件夹中创建名为pi.cmake的CMake配置文件:
SET(CMAKE_SYSTEM_NAME Linux)
SET(CMAKE_SYSTEM_VERSION 1)
SET(CMAKE_C_COMPILER $ENV{HOME}/raspberrypi/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian/bin/arm-linux-gnueabihf-gcc)
SET(CMAKE_CXX_COMPILER $ENV{HOME}/raspberrypi/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian/bin/arm-linux-gnueabihf-g++)
SET(CMAKE_FIND_ROOT_PATH $ENV{HOME}/raspberrypi/rootfs)
SET(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
SET(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
SET(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
登录后复制

与CMake交叉编译

要使用 CMake 交叉编译程序,请在调用 CMake 时指定 CMAKE_TOOLCHAIN_FILE 变量:

cmake -D CMAKE_TOOLCHAIN_FILE=$HOME/raspberrypi/pi.cmake ...
登录后复制

以上是如何在 Ubuntu 上交叉编译 Raspberry Pi?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板