La Compilation croisée helloworld pour les BRAS
Je suis en train d'essayer une simple compilation croisée (cc) pour un ARM CORTEX-A9:
Pour garder les choses simples c'est le c-code:
#include <stdio.h>
int main()
{
printf("Hello World!\n");
return 0;
}
La compilation native sur le bras fonctionne très bien et est démarré gcc helloworld.c -o helloworld
alors que la croix de la compilation est lancée avec arm-xilinx-linux-gnueabi-gcc helloworld.c -o helloworld_cc
Version de GCC:
originaires d': gcc version 4.6.3 (Ubuntu/Linaro 4.6.3-1ubuntu5) Target: arm-linux-gnueabihf
CC: gcc version 4.6.3 (Sourcery CodeBench Lite 2012.03-79) Target: arm-xilinx-linux-gnueabi
ABI de readelf:
readelf-originaires d': OS: Linux, ABI: 2.6.31
readelf-cc: OS: Linux, ABI: 2.6.16
Lié libs - la croix est compilé statiquement, ce qui ne devrait pas manquer les libs:
root@localhost:/temp# ldd helloworld
libc.so.6 => /lib/arm-linux-gnueabihf/libc.so.6 (0xb6ed8000)
/lib/ld-linux-armhf.so.3 (0xb6fce000)
root@localhost:/temp# ldd helloworld_cc
not a dynamic executable
Le Problème: le natif programme fonctionne très bien, le cc se termine toujours avec:
root@localhost:/tmp# ./helloworld_cc
-bash: ./helloworld_cc: No such file or directory
Tous les conseils, je l'espère, j'ai compris assez d'informations.
modifier
Reliant statique fait le truc, mais maintenant, la taille du fichier est énorme (678kB (CC-statique) vs 4ko(natif)? Pourquoi est-il libs sont manquantes, même s'il dit qu'elle n'est pas liée de façon dynamique? Question similaire: Croix de la compilation statique C hello world pour Android à l'aide de l'arm-linux-gnueabi-gcc
arm-xilinx-linux-gnueabi-gcc helloworld.c -o helloworld_cc -static
pas un Linaro/Ununtu en cours d'exécution sur l'arm cortex a9 (xillinux sur zedboard) xillybus.com/xillinux
ok. ensuite, vérifiez attribut exécutable sur votre binaire.
j'ai fait un chmod +x pour les deux et doublé vérifier graphiquement dans le navigateur de fichiers de propriétés
c'est peut-être manqué de bibliothèque partagée sur votre plate - forme cible- ici stackoverflow.com/questions/2716702/... et askubuntu.com/questions/73491/...
OriginalL'auteur eactor | 2013-06-05
Vous devez vous connecter pour publier un commentaire.
Ther a un chaînon manquant dans l'
lib
dossier Linaro Ubuntu. Il s'est présenté avecreadelf -a
De mettre le lien
lib/ld-linux.so.3
àlib/arm-linux-gnueabihf/ld-2.15.so
et il fonctionne.
Merci pour l'aide Sergey
OriginalL'auteur eactor