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

如何在 Ubuntu 上交叉编译 Raspberry Pi:为什么找不到 libstdc ?

Barbara Streisand
发布: 2024-11-15 15:15:03
原创
224 人浏览过

How to Cross-Compile for Raspberry Pi on Ubuntu:  Why Can't I Find libstdc  ?

如何在主机上为 Raspberry Pi 安装交叉编译器工具链

场景:

您正在尝试在 Ubuntu 机器上交叉编译 Raspberry Pi 的代码。然而,安装预建工具链后,您会遇到寻找 libstdc 共享库以及方便使用工具链的问题。

解决方案:

安装和使用有效地交叉编译工具链,请遵循这些步骤:

先决条件:

安装以下先决条件:

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

设置工具链:

  1. 创建一个名为 raspberrypi 的文件夹您的主目录:

    mkdir ~/raspberrypi
    登录后复制
  2. 导航到此文件夹并克隆工具链存储库:

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

集成工具链:

  1. 访问所需的工具链:

    export PATH=$PATH:$HOME/raspberrypi/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian/bin
    登录后复制
  2. 更新您的终端或重新启动您的会话:

    • 注销并重新登录。
    • 运行 . ~/.bashrc 在终端中刷新您的 PATH。

配置 CMake:

  1. 创建一个CMake配置文件(~/raspberrypi/pi.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)
    登录后复制

创建文件系统镜像(可选):

  1. 创建rootfs文件夹:

    mkdir ~/raspberrypi/rootfs
    登录后复制
  2. 将 Raspberry Pi 中的 /lib 和 /usr 目录复制到 ~/raspberrypi/rootfs:

    rsync -rl --delete-after --safe-links [email protected]:/{lib,usr} $HOME/raspberrypi/rootfs
    登录后复制

交叉编译CMake:

要使用配置的工具链进行交叉编译,请在 CMake 中使用 -D CMAKE_TOOLCHAIN_FILE=$HOME/raspberrypi/pi.cmake 标志。

示例:

为 Raspberry 编译一个简单的“Hello World”程序Pi:

  1. 克隆“cmake-hello-world”存储库:

    git clone https://github.com/jameskbride/cmake-hello-world.git 
    登录后复制
  2. 创建一个构建目录并导航到它:

    cd cmake-hello-world
    mkdir build
    cd build
    登录后复制
  3. 使用工具链配置 CMake文件:

    cmake -D CMAKE_TOOLCHAIN_FILE=$HOME/raspberrypi/pi.cmake ../
    登录后复制
  4. 构建程序:

    make
    登录后复制
  5. 将可执行文件传输到您的 Raspberry Pi:

    scp CMakeHelloWorld [email protected]:/home/pi/
    登录后复制
  6. 在您的 Raspberry 上运行该程序Pi:

    ssh [email protected] ./CMakeHelloWorld
    登录后复制

按照以下步骤,您将成功安装并集成Raspberry Pi交叉编译工具链,使您可以方便地交叉编译您的应用程序。

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

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