场景:
您正在尝试在 Ubuntu 机器上交叉编译 Raspberry Pi 的代码。然而,安装预建工具链后,您会遇到寻找 libstdc 共享库以及方便使用工具链的问题。
解决方案:
安装并使用有效地跨编译器工具链,请按照以下步骤操作:
先决条件:
安装以下先决条件:
apt-get install git rsync cmake libc6-i386 lib32z1 lib32stdc++6
设置工具链:
在主目录中创建一个名为 raspberrypi 的文件夹:
mkdir ~/raspberrypi
导航到此文件夹并克隆工具链存储库:
cd ~/raspberrypi git clone git://github.com/raspberrypi/tools.git
集成工具链:
访问所需的工具链:
export PATH=$PATH:$HOME/raspberrypi/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian/bin
更新您的终端或重新启动会话:
配置 CMake:
创建一个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)
创建文件系统镜像(可选):
创建 rootfs 文件夹:
mkdir ~/raspberrypi/rootfs
将 Raspberry Pi 中的 /lib 和 /usr 目录复制到 ~/raspberrypi/rootfs:
rsync -rl --delete-after --safe-links [email protected]:/{lib,usr} $HOME/raspberrypi/rootfs
与 CMake 交叉编译:
要使用配置的工具链进行交叉编译,请使用 -D CMAKE_TOOLCHAIN_FILE=$HOME/raspberrypi/pi.cmake使用 CMake 进行标记。
示例:
为 Raspberry Pi 编译一个简单的“Hello World”程序:
克隆“cmake-hello-world”存储库:
git clone https://github.com/jameskbride/cmake-hello-world.git
创建构建目录并导航到它:
cd cmake-hello-world mkdir build cd build
配置使用工具链文件进行 CMake:
cmake -D CMAKE_TOOLCHAIN_FILE=$HOME/raspberrypi/pi.cmake ../
构建程序:
make
将可执行文件传输到您的 Raspberry Pi:
scp CMakeHelloWorld [email protected]:/home/pi/
在您的树莓派上运行程序:
ssh [email protected] ./CMakeHelloWorld
按照以下步骤,您将成功安装并集成树莓派Pi交叉编译工具链,让您可以方便地交叉编译您的应用程序。
以上是如何在 Ubuntu 上交叉编译 Raspberry Pi:为什么找不到 libstdc ?的详细内容。更多信息请关注PHP中文网其他相关文章!