Maison >développement back-end >C++ >Comment effectuer une compilation croisée pour Raspberry Pi sur Ubuntu ?

Comment effectuer une compilation croisée pour Raspberry Pi sur Ubuntu ?

Susan Sarandon
Susan Sarandonoriginal
2024-11-17 07:22:03238parcourir

How to Cross-Compile for Raspberry Pi on Ubuntu?

Compilation croisée pour Raspberry Pi sur Ubuntu

Pour activer la compilation croisée pour Raspberry Pi sur Ubuntu, vous devrez installer le Packages prérequis suivants :

apt-get install git rsync cmake libc6-i386 lib32z1 lib32stdc++6

Obtenez la chaîne d'outils

Dans votre répertoire personnel, créez un dossier nommé raspberrypi et utilisez Git pour télécharger la chaîne d'outils :

git clone git://github.com/raspberrypi/tools.git

Sélectionnez le compilateur

Choisissez la chaîne d'outils gcc-linaro-arm-linux-gnueabihf-raspbian dans le dossier raspberrypi/tools.

Ajoutez le compilateur à votre PATH

Modifiez le fichier .bashrc et ajoutez la ligne suivante :

export PATH=$PATH:$HOME/raspberrypi/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian/bin

Chargez les modifications du PATH

Redémarrez votre session de terminal ou exécutez . ~/.bashrc pour appliquer les modifications PATH.

Vérifiez le compilateur

Exécutez arm-linux-gnueabihf-gcc -v pour vérifier l'installation du compilateur. Il doit afficher des informations sur la chaîne d'outils sélectionnée.

Création de la configuration Rootfs et CMake

Pour résoudre le problème des bibliothèques partagées manquantes, suivez ces étapes supplémentaires :

  1. Créez un dossier rootfs dans votre répertoire raspberrypi.
  2. Utilisez rsync pour copier les répertoires /lib et /usr de votre Raspberry Pi vers le répertoire rootfs de votre machine Ubuntu :

    rsync -rl --delete-after --safe-links [email protected]:/{lib,usr} $HOME/raspberrypi/rootfs
  3. Créez un fichier de configuration CMake nommé pi.cmake dans le dossier raspberrypi :
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)

Compilation croisée avec CMake

Pour compiler de manière croisée vos programmes à l'aide de CMake, spécifiez la variable CMAKE_TOOLCHAIN_FILE lors de l'appel de CMake :

cmake -D CMAKE_TOOLCHAIN_FILE=$HOME/raspberrypi/pi.cmake ...

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn