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

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