Home > Article > Backend Development > How to Cross-Compile for Raspberry Pi on Ubuntu?
Cross-Compiling for Raspberry Pi on Ubuntu
To enable cross-compiling for Raspberry Pi on Ubuntu, you'll need to install the following prerequisite packages:
apt-get install git rsync cmake libc6-i386 lib32z1 lib32stdc++6
Obtain the Toolchain
In your home directory, create a folder named raspberrypi and use Git to download the toolchain:
git clone git://github.com/raspberrypi/tools.git
Select the Compiler
Choose the gcc-linaro-arm-linux-gnueabihf-raspbian toolchain within the raspberrypi/tools folder.
Add the Compiler to Your PATH
Edit the .bashrc file and add the following line:
export PATH=$PATH:$HOME/raspberrypi/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian/bin
Load the PATH Changes
Restart your terminal session or run . ~/.bashrc to apply the PATH modifications.
Verify the Compiler
Execute arm-linux-gnueabihf-gcc -v to verify the compiler's installation. It should display information about the selected toolchain.
Creating the Rootfs and CMake Configuration
To address the issue with missing shared libraries, follow these additional steps:
Use rsync to copy the /lib and /usr directories from your Raspberry Pi to the rootfs directory on your Ubuntu machine:
rsync -rl --delete-after --safe-links [email protected]:/{lib,usr} $HOME/raspberrypi/rootfs
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)
Cross-Compiling with CMake
To cross-compile your programs using CMake, specify the CMAKE_TOOLCHAIN_FILE variable when invoking CMake:
cmake -D CMAKE_TOOLCHAIN_FILE=$HOME/raspberrypi/pi.cmake ...
The above is the detailed content of How to Cross-Compile for Raspberry Pi on Ubuntu?. For more information, please follow other related articles on the PHP Chinese website!