Rechercher : dans
Par :

Installer GCC ARM cross-compiler

Dernière réponse le 17 jui 2007 à 09:13:59 kh@7, le 22 mar 2007 à 17:29:30 
 Signaler ce message aux modérateurs

Je doit mettre en place une plate forme de compilation pour une carte à base de ARM9.
Le constructeur de la carte me fournit les sources: chaîne de compilation croisée ARM pré compilé & distribution uclinux/ARM.
A priori g bien installé la chaîne de compil croisée (g rajouté les dossiers bin a la variable PATH : le fichier arm-linux-gcc est reconnu)
Le probleme est ke je n'arrive pas a installer ma distribution uclinux/ARM qui est basé sur un Makefile.
quand je fé make config: pas de problem
quand je fé make dep :g des problemes: ça m'affiche:


login@login-arm:~/Desktop/opengear$ make dep
make ARCH=arm CROSS_COMPILE=arm-linux- -C linux-2.4.x dep
make[1]: entrant dans le répertoire « /home/login/Desktop/opengear/linux-2.4.x »
unset GCC_EXEC_PREFIX; gcc -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -o scripts/mkdep scripts/mkdep.c
scripts/mkdep.c:33:19: error: ctype.h: Aucun fichier ou répertoire de ce type
scripts/mkdep.c:34:19: error: fcntl.h: Aucun fichier ou répertoire de ce type
In file included from /usr/lib/gcc/i486-linux-gnu/4.1.2/include/syslimits.h:7,
from /usr/lib/gcc/i486-linux-gnu/4.1.2/include/limits.h:11,
from scripts/mkdep.c:35:
/usr/lib/gcc/i486-linux-gnu/4.1.2/include/limits.h:122:61: error: limits.h: Aucun fichier ou répertoire de ce type
scripts/mkdep.c:36:19: error: stdio.h: Aucun fichier ou répertoire de ce type
scripts/mkdep.c:37:20: error: stdlib.h: Aucun fichier ou répertoire de ce type
scripts/mkdep.c:38:20: error: string.h: Aucun fichier ou répertoire de ce type
scripts/mkdep.c:39:20: error: unistd.h: Aucun fichier ou répertoire de ce type
scripts/mkdep.c:41:23: error: sys/fcntl.h: Aucun fichier ou répertoire de ce type
scripts/mkdep.c:42:22: error: sys/mman.h: Aucun fichier ou répertoire de ce type
scripts/mkdep.c:43:22: error: sys/stat.h: Aucun fichier ou répertoire de ce type
scripts/mkdep.c:44:23: error: sys/types.h: Aucun fichier ou répertoire de ce type
scripts/mkdep.c:69: error: ‘NULL’ undeclared here (not in a function)
scripts/mkdep.c: In function ‘do_depname’:
scripts/mkdep.c:78: warning: implicit declaration of function ‘printf’
scripts/mkdep.c:78: warning: incompatible implicit declaration of built-in function ‘printf’
scripts/mkdep.c: In function ‘grow_config’:
scripts/mkdep.c:93: warning: implicit declaration of function ‘realloc’
scripts/mkdep.c:93: warning: assignment makes pointer from integer without a cast
scripts/mkdep.c:95: warning: implicit declaration of function ‘perror’
scripts/mkdep.c:95: warning: implicit declaration of function ‘exit’
scripts/mkdep.c:95: warning: incompatible implicit declaration of built-in function ‘exit’
scripts/mkdep.c: In function ‘is_defined_config’:
scripts/mkdep.c:111: warning: implicit declaration of function ‘memcmp’
scripts/mkdep.c: In function ‘define_config’:
scripts/mkdep.c:126: warning: implicit declaration of function ‘memcpy’
scripts/mkdep.c:126: warning: incompatible implicit declaration of built-in function ‘memcpy’
scripts/mkdep.c: In function ‘grow_precious’:
scripts/mkdep.c:163: warning: assignment makes pointer from integer without a cast
scripts/mkdep.c:165: warning: incompatible implicit declaration of built-in function ‘exit’
scripts/mkdep.c: In function ‘define_precious’:
scripts/mkdep.c:176: warning: implicit declaration of function ‘strlen’
scripts/mkdep.c:176: warning: incompatible implicit declaration of built-in function ‘strlen’
scripts/mkdep.c:179: warning: incompatible implicit declaration of built-in function ‘memcpy’
scripts/mkdep.c: In function ‘handle_include’:
scripts/mkdep.c:202: warning: incompatible implicit declaration of built-in function ‘memcpy’
scripts/mkdep.c:204: warning: implicit declaration of function ‘access’
scripts/mkdep.c:204: error: ‘F_OK’ undeclared (first use in this function)
scripts/mkdep.c:204: error: (Each undeclared identifier is reported only once
scripts/mkdep.c:204: error: for each function it appears in.)
scripts/mkdep.c:206: warning: incompatible implicit declaration of built-in function ‘printf’
scripts/mkdep.c: In function ‘add_path’:
scripts/mkdep.c:221: error: ‘PATH_MAX’ undeclared (first use in this function)
scripts/mkdep.c:224: warning: implicit declaration of function ‘strcmp’
scripts/mkdep.c:225: warning: implicit declaration of function ‘realpath’
scripts/mkdep.c:225: warning: assignment makes pointer from integer without a cast
scripts/mkdep.c:227: warning: implicit declaration of function ‘fprintf’
scripts/mkdep.c:227: warning: incompatible implicit declaration of built-in function ‘fprintf’
scripts/mkdep.c:227: error: ‘stderr’ undeclared (first use in this function)
scripts/mkdep.c:228: warning: incompatible implicit declaration of built-in function ‘exit’
scripts/mkdep.c:235: warning: assignment makes pointer from integer without a cast
scripts/mkdep.c:237: warning: incompatible implicit declaration of built-in function ‘fprintf’
scripts/mkdep.c:238: warning: incompatible implicit declaration of built-in function ‘exit’
scripts/mkdep.c:242: warning: incompatible implicit declaration of built-in function ‘strlen’
scripts/mkdep.c:243: warning: implicit declaration of function ‘malloc’
scripts/mkdep.c:243: warning: incompatible implicit declaration of built-in function ‘malloc’
scripts/mkdep.c:245: warning: incompatible implicit declaration of built-in function ‘fprintf’
scripts/mkdep.c:246: warning: incompatible implicit declaration of built-in function ‘exit’
scripts/mkdep.c:248: warning: implicit declaration of function ‘strcpy’
scripts/mkdep.c:248: warning: incompatible implicit declaration of built-in function ‘strcpy’
scripts/mkdep.c:221: warning: unused variable ‘resolved_path’
scripts/mkdep.c: In function ‘use_config’:
scripts/mkdep.c:266: warning: incompatible implicit declaration of built-in function ‘memcpy’
scripts/mkdep.c:271: warning: implicit declaration of function ‘isupper’
scripts/mkdep.c:271: warning: implicit declaration of function ‘tolower’
scripts/mkdep.c:283: warning: incompatible implicit declaration of built-in function ‘printf’
scripts/mkdep.c: In function ‘state_machine’:
scripts/mkdep.c:493: warning: implicit declaration of function ‘isalnum’
scripts/mkdep.c: In function ‘do_depend’:
scripts/mkdep.c:527: warning: implicit declaration of function ‘getpagesize’
scripts/mkdep.c:530: error: storage size of ‘st’ isn’t known
scripts/mkdep.c:533: warning: implicit declaration of function ‘open’
scripts/mkdep.c:533: error: ‘O_RDONLY’ undeclared (first use in this function)
scripts/mkdep.c:539: warning: implicit declaration of function ‘fstat’
scripts/mkdep.c:541: warning: incompatible implicit declaration of built-in function ‘fprintf’
scripts/mkdep.c:541: error: ‘stderr’ undeclared (first use in this function)
scripts/mkdep.c:542: warning: implicit declaration of function ‘close’
scripts/mkdep.c:550: warning: implicit declaration of function ‘mmap’
scripts/mkdep.c:550: error: ‘PROT_READ’ undeclared (first use in this function)
scripts/mkdep.c:550: error: ‘MAP_PRIVATE’ undeclared (first use in this function)
scripts/mkdep.c:550: warning: assignment makes pointer from integer without a cast
scripts/mkdep.c:558: warning: incompatible implicit declaration of built-in function ‘fprintf’
scripts/mkdep.c:559: warning: incompatible implicit declaration of built-in function ‘exit’
scripts/mkdep.c:566: warning: implicit declaration of function ‘puts’
scripts/mkdep.c:571: warning: implicit declaration of function ‘munmap’
scripts/mkdep.c:530: warning: unused variable ‘st’
scripts/mkdep.c: In function ‘main’:
scripts/mkdep.c:585: warning: implicit declaration of function ‘getenv’
scripts/mkdep.c:585: warning: assignment makes pointer from integer without a cast
scripts/mkdep.c:587: warning: implicit declaration of function ‘fputs’
scripts/mkdep.c:588: error: ‘stderr’ undeclared (first use in this function)
scripts/mkdep.c:595: warning: implicit declaration of function ‘strncmp’
scripts/mkdep.c:616: warning: incompatible implicit declaration of built-in function ‘strlen’
scripts/mkdep.c:617: warning: incompatible implicit declaration of built-in function ‘memcpy’
scripts/mkdep.c:629: warning: incompatible implicit declaration of built-in function ‘printf’
make[1]: *** [scripts/mkdep] Erreur 1
make[1]: quittant le répertoire « /home/login/Desktop/opengear/linux-2.4.x »
make: *** [dep] Erreur 2

Que faire??
Merci Bokou!!!!!!!

Configuration: Linux
Firefox 2.0.0.2

Meilleures réponses pour « installer GCC ARM cross compiler » dans :
Compiler du C sous Linux/UNIX VoirSous Linux, le compilateur de C est gcc. Il est installé de base sur plusieurs distributions, mais sur Debian (et celles qui en découlent) il faudra l'installer (aptitude install gcc). gcc Syntaxe de GCC gcc Tout d'abord, il faut savoir...
[Linux] Installer les programmes (gestion des paquets, compil) Voir************************************************************** **** INSTALLER UN PROGRAMME SOUS LINUX : **** * LA GESTION DES PAQUETS ou COMMENT SE SIMPLIFIER LA VIE * ** UN EXEMPLE DE COMPILATION POUR SE FAIRE LA MAIN ...
Installer Java sous Ubuntu VoirPar défaut, Firefox n'est pas fourni avec Java. Voici comment procéder pour l'installer: Ouvrez un terminal (Menu Applications > Accessoires > Terminal) et tapez: sudo aptitude install sun-java6-jre sun-java6-plugin ou sudo aptitude install ...
LDAP - Installation d'un serveur d'annuaire (OpenLDAP sous Linux VoirPrésentation de OpenLDAP OpenLDAP (http://www.openldap.org) est un projet libre de serveur d'annuaire conforme à la norme LDAP 3. Ce serveur, dérivé de l'implémentation mise au point par l'université du Michigan, est développé selon les termes de...
Installation d'un serveur Web sous Linux (Apache, PHP et MySQL) VoirIntroduction Un serveur web est un logiciel permettant de rendre accessibles à de nombreux ordinateurs (les clients) des pages web stockées sur le disque. Cette fiche pratique explique comment installer le serveur web Apache sur un système de type...

1

mamiemando, le 23 mar 2007 à 17:13:33

On dirait que tu as oublié d'installer au préalable une libc (glibc), normalement fournit avec le paquet gcc.

Bonne chance

Répondre à mamiemando

2

kh@7, le 26 mar 2007 à 11:00:26

En fait je viens de constater que je n'ai pas la variable ld_library_path; ou du moins je n'arrive pas à la visualiser.
Comment je dois faire pour la créer sous ubuntu.

Merci!

Répondre à kh@7

3

mamiemando, le 26 mar 2007 à 16:24:58
  • +1

Pour la visualiser :

env | grep LD_LIBRARY_PATH

Exemple
(mando@cobo) (~) $ env | grep LD_LIBRARY_PATH
LD_LIBRARY_PATH=/usr/lib

Si la commande ne retourne rien c'est qu'elle n'est pas définie. Mais normalement elle devrait être configurée correctement si tu as installé les paquets pour développer en C.
Sous debian c'est ceux là :
libc6
libc6-dev
libc6-i686
gcc
gcc-4.1
gcc-4.1-base
libgcc1

Bonne chance

Répondre à mamiemando

4

kh@7, le 26 mar 2007 à 17:55:58

Je te remercie pour l'attention que tu me porte.
En fait c bien ça elle ne retourne rien du tout.
Comme je lé expliké auparant j'essaye de mettre en place un compilateur croisé pour arm.
Le constructeur de la carte m'a donné toutes les sources et concernant la chaine de compilation croisé elle été deja précompilé (le dossié fourni contient les dossiers local /usr/ bin/ arm-linux
G mis à jour la variable PATH; par contre je n'ais pas touché à LD_LBRARY_PATH.

voila ou j'en suis.

Répondre à kh@7

5

mamiemando, le 26 mar 2007 à 18:34:23

Peux tu me dire si tu as un gcc d'installé ?

which gcc

Répondre à mamiemando

6

kh@7, le 27 mar 2007 à 10:10:24
  • +3

Si g bien un gcc d'instalé, voire meme 2 : gcc de ubuntu et arm-linux-gcc

Répondre à kh@7

7

mamiemando, le 27 mar 2007 à 17:04:29

Attends ta distribution c'est quoi une ubuntu, ou autre chose ? Que donne la commande

env | grep LD_LIBRARY_PATH

Répondre à mamiemando

8

kh@7, le 27 mar 2007 à 17:09:00
  • +1

Il é la sans doute le problem; elle m'affiche rien.

Répondre à kh@7

9

mamiemando, le 27 mar 2007 à 17:26:53

En fait tu dois faire la différence entre deux problèmes de compilation
1) trouver les headers, ie ceux-ci existent soit dans un répertoire standard d'include (gener /usr/include), soit celui-ci est précisé à la compilation (options -I et -isystem). Etant donné qu'il s'agit de la libc tu devrais par exemple avoir stdio.h dans /usr/include :

(mando@cobo) (~) $ ls /usr/include/stdio.h
/usr/include/stdio.h

Par exemple moi j'utilise des headers qui ne sont pas dans /usr/include donc je les précise à la compilation :
g++ -O2 -fPIC -W  -I/usr/include/boost -o plop plop.cpp


2) trouver le binaire de la librairie (un fichier .a ou .so) . Encore une fois vu que tu utilises la libc normalement tu n'as pas besoin de préciser quelque chose à la compilation, elle devrait être dans /lib. Mais de toute façon pour l'instant toi tu es dans le problème (1). C'est uniquement pour ce 2e problème que la valeur de la variable LD_LIBRARY_PATH peut avoir un impact et tu n'en es pas encore là.

A ta place je vérifierais que tu as bien les headers stdio.h & co dans /usr/include. Si ce n'est pas le cas il faut vérifier que le paquet gcc-dev est installé. Et très franchement je pense que c'est ton problème

Répondre à mamiemando

10

 Micky, le 17 jui 2007 à 09:13:59

Salut,

Ce que je te propose n'est pas une solution, mais est une alternative très intéressante;

Si tu veux faire du cross-compiling, intéresse-toi à Scratchbox. C'est un très bon outil qui peut t'émuler n'importe quel système (dont le ARM) à partir d'une toolchain et d'un émulateur (Qemu).
Bref, c'est vraiment pas mal du tout et ça simule plutôt bien ta plateforme.

Amuse toi bien
Micky

Répondre à Micky