π
<-

Problème à la compilation

C, C++, ASM...

Problème à la compilation

Message non lude caviar » 21 Mai 2011, 14:03

Bonjour,

Je souhaite utiliser la fonction sleep() mais il y a une erreur à la compilation. Ci-dessous le code source :

#include

int main(void) {
sleep(2000);
}

Le message d'erreur est le suivant :

$ make
nspire-gcc -Os -Wall -W -c toutnoir.c
toutnoir.c: In function 'main':
toutnoir.c:5:1: warning: control reaches end of non-void function
nspire-ld -nostdlib toutnoir.o -o toutnoir.elf
c:/ti/yagarto/bin/../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/bin/ld.exe: c:/ti/ndless20/sdk/bin/../liblibndls.a(sleep.o): Unknown mandatory EABI object attribute 44
c:/ti/yagarto/bin/../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/bin/ld.exe: failed to merge target specific data of file c:/ti/ndless20/sdk/bin/../liblibndls.a(sleep.o)
c:/ti/yagarto/bin/../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/bin/ld.exe: c:/ti/ndless20/sdk/bin/../liblibndls.a(idle.o): Unknown mandatory EABI object attribute 44
c:/ti/yagarto/bin/../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/bin/ld.exe: failed to merge target specific data of file c:/ti/ndless20/sdk/bin/../liblibndls.a(idle.o)
collect2: ld returned 1 exit status
make: *** [toutnoir.tns] Error 1

Ci dessous le makefile pour information :

GCC = nspire-gcc
LD = nspire-ld
GCCFLAGS = -Os -Wall -W
LDFLAGS = -nostdlib
OBJCOPY := "$(shell which arm-elf-objcopy 2/dev/null)"
ifeq (${OBJCOPY},"")
OBJCOPY := arm-none-eabi-objcopy
endif
EXE = hexeditor.tns
OBJS = hexeditor.o
DISTDIR = ../../calcbin/samples
vpath %.tns $(DISTDIR)

all: $(EXE)

%.o: %.c
$(GCC) $(GCCFLAGS) -c $
$(EXE): $(OBJS)
$(LD) $(LDFLAGS) $^ -o $(@:.tns=.elf)
mkdir -p $(DISTDIR)
$(OBJCOPY) -O binary $(@:.tns=.elf) $(DISTDIR)/$@

clean:
rm -f *.o *.elf
rm -f $(DISTDIR)/$(EXE)


Ca ne marche plus depuis que je suis passé à ndless2.0. J'ai le même genre d'erreur avec la fonction wait_key_pressed(void)

Quelqu'un pourrait t'il m'éclairer ?
Avatar de l’utilisateur
caviar
Niveau 3: MH (Membre Habitué)
Niveau 3: MH (Membre Habitué)
Prochain niv.: 92%
 
Messages: 18
Inscription: 15 Mai 2011, 00:00
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: TS

Re: Problème à la compilation

Message non lude Chockosta » 21 Mai 2011, 14:35

Déjà, à la fin de la fonction main(), il faut mettre un "return 0;"
Ensuite tu peux virer dans le makefile la ligne "LDFLAGS = -nostdlib", qui a peu d’intérêt et surtout qui t'empêche d'utiliser la bibli standard.
Ensuite, Ndless a besoin d'une version plus à jour du compilo, j'ai également eu le problème des "Unknown mandatory object..."
Je t'invite à regarder ici, peut-être trouveras tu la solution. Critor explique très bien. En gros, il faut mettre à jour Yagarto, avec binutils 2.21
Avatar de l’utilisateur
ChockostaPremium
Niveau 10: GR (Guide de Référence)
Niveau 10: GR (Guide de Référence)
Prochain niv.: 2.2%
 
Messages: 213
Inscription: 24 Fév 2011, 00:00
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: Math sup

Re: Problème à la compilation

Message non lude caviar » 21 Mai 2011, 15:01

Merci pour ton aide Chokosta, la solution était bien de mettre à jour Yagarto avec binutils 2.21.
Merci encore
Avatar de l’utilisateur
caviar
Niveau 3: MH (Membre Habitué)
Niveau 3: MH (Membre Habitué)
Prochain niv.: 92%
 
Messages: 18
Inscription: 15 Mai 2011, 00:00
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: TS

Re: Problème à la compilation

Message non lude caviar » 21 Mai 2011, 15:21

Je me permets de reposer une nouvelle question dans la foulée. J'ai le code source suivant :

#include

int main(void) {
wait_key_pressed();
return 0;
}

Et le message d'erreur suivant :

nspire-ld toutnoir.o -o toutnoir.elf
c:/ti/ndless20/sdk/bin/../liblibndls.a(touchpad.o): In function `touchpad_getinfo':
touchpad.c:(.text+0x100): undefined reference to `is_touchpad'
c:/ti/ndless20/sdk/bin/../liblibndls.a(touchpad.o): In function `touchpad_scan':
touchpad.c:(.text+0x188): undefined reference to `is_touchpad'
collect2: ld returned 1 exit status
make: *** [toutnoir.tns] Error 1

et le makefile suivant :
GCC = nspire-gcc
LD = nspire-ld
GCCFLAGS = -Os -Wall -W
LDFLAGS =
OBJCOPY := "$(shell which arm-elf-objcopy 2/dev/null)"
ifeq (${OBJCOPY},"")
OBJCOPY := arm-none-eabi-objcopy
endif
EXE = toutnoir.tns
OBJS = toutnoir.o
DISTDIR = ../../calcbin/samples
vpath %.tns $(DISTDIR)

all: $(EXE)

%.o: %.c
$(GCC) $(GCCFLAGS) -c $
$(EXE): $(OBJS)
$(LD) $(LDFLAGS) $^ -o $(@:.tns=.elf)
mkdir -p $(DISTDIR)
$(OBJCOPY) -O binary $(@:.tns=.elf) $(DISTDIR)/$@

clean:
rm -f *.o *.elf
rm -f $(DISTDIR)/$(EXE)


D'où vient le problème ?
Avatar de l’utilisateur
caviar
Niveau 3: MH (Membre Habitué)
Niveau 3: MH (Membre Habitué)
Prochain niv.: 92%
 
Messages: 18
Inscription: 15 Mai 2011, 00:00
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: TS

Re: Problème à la compilation

Message non lude Lionel Debroux » 21 Mai 2011, 18:30

Hmm, j'ai déjà  vu cette erreur... Ca n'est pas que tu compiles avec -nostdlib, mais il doit falloir mettre -lndls ?
Membre de la TI-Chess Team.
Co-mainteneur de GCC4TI (documentation en ligne de GCC4TI), TIEmu et TILP.
Avatar de l’utilisateur
Lionel DebrouxSuper Modo
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Prochain niv.: 11.4%
 
Messages: 6873
Inscription: 23 Déc 2009, 00:00
Localisation: France
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: -
GitHub: debrouxl

Re: Problème à la compilation

Message non lude ExtendeD » 21 Mai 2011, 18:50

Peux tu retester une compilation après avoir supprimé les différents fichiers ".o" du dossier system/ du SDK Ndless?
Avatar de l’utilisateur
ExtendeDPremium
Niveau 8: ER (Espèce Rare: nerd)
Niveau 8: ER (Espèce Rare: nerd)
Prochain niv.: 64.1%
 
Messages: 204
Inscription: 30 Déc 2004, 00:00
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: N/A

Re: Problème à la compilation

Message non lude caviar » 22 Mai 2011, 09:32

Bonjour,

Je viens d'essayer une compilation avec le paramètre -lndls mais rien n'y fait. De même, aucun résultat si je supprime les fichiers *.o du dossier system.

Peux être est-ce un bug de Ndless ?
Avatar de l’utilisateur
caviar
Niveau 3: MH (Membre Habitué)
Niveau 3: MH (Membre Habitué)
Prochain niv.: 92%
 
Messages: 18
Inscription: 15 Mai 2011, 00:00
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: TS

Re: Problème à la compilation

Message non lude ExtendeD » 22 Mai 2011, 10:59

Peux-tu montrer la sortie de la compilation que tu obtiens juste après suppression de *.o de system/ ?
Avatar de l’utilisateur
ExtendeDPremium
Niveau 8: ER (Espèce Rare: nerd)
Niveau 8: ER (Espèce Rare: nerd)
Prochain niv.: 64.1%
 
Messages: 204
Inscription: 30 Déc 2004, 00:00
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: N/A

Re: Problème à la compilation

Message non lude caviar » 22 Mai 2011, 17:51

Voici le message d'erreur à la compilation :

$ make
nspire-ld toutnoir.o -o toutnoir.elf
c:/ti/ndless20/sdk/bin/../liblibndls.a(touchpad.o): In function `touchpad_getinfo':
touchpad.c:(.text+0x100): undefined reference to `is_touchpad'
c:/ti/ndless20/sdk/bin/../liblibndls.a(touchpad.o): In function `touchpad_scan':
touchpad.c:(.text+0x188): undefined reference to `is_touchpad'
collect2: ld returned 1 exit status
make: *** [toutnoir.tns] Error 1
Avatar de l’utilisateur
caviar
Niveau 3: MH (Membre Habitué)
Niveau 3: MH (Membre Habitué)
Prochain niv.: 92%
 
Messages: 18
Inscription: 15 Mai 2011, 00:00
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: TS

Re: Problème à la compilation

Message non lude ExtendeD » 22 Mai 2011, 20:16

Peux-tu faire un autre test? Désolé pour ce ping-pong, tu es le premier a reporter ce problème et il n'est pas reproduisible chez moi. C'est malheureusement la seule manière de diagnostiquer ce qui ne va pas.

1) Que retourne la commande "nspire-gcc --version"?

2)
- Edite le fichier bin/nspire-gcc, et remplace la ligne "(cd "$DIRNAME/../system" make -s all)" par "(cd "$DIRNAME/../system" make all)"
- Supprime une nouvelle fois les fichier .o dans le dossier system/
- Qu'indique alors une nouvelle compilation?
Avatar de l’utilisateur
ExtendeDPremium
Niveau 8: ER (Espèce Rare: nerd)
Niveau 8: ER (Espèce Rare: nerd)
Prochain niv.: 64.1%
 
Messages: 204
Inscription: 30 Déc 2004, 00:00
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: N/A

Suivante

Retourner vers Native: Ndless, Linux, ...

Qui est en ligne

Utilisateurs parcourant ce forum: ClaudeBot [spider] et 6 invités

-
Rechercher
-
Social TI-Planet
-
Sujets à la une
Comparaisons des meilleurs prix pour acheter sa calculatrice !
"1 calculatrice pour tous", le programme solidaire de Texas Instruments. Reçois gratuitement et sans aucune obligation d'achat, 5 calculatrices couleur programmables en Python à donner aux élèves les plus nécessiteux de ton lycée. Tu peux recevoir au choix 5 TI-82 Advanced Edition Python ou bien 5 TI-83 Premium CE Edition Python.
Enseignant(e), reçois gratuitement 1 exemplaire de test de la TI-82 Advanced Edition Python. À demander d'ici le 31 décembre 2024.
Aidez la communauté à documenter les révisions matérielles en listant vos calculatrices graphiques !
1234
-
Faire un don / Premium
Pour plus de concours, de lots, de tests, nous aider à payer le serveur et les domaines...
Faire un don
Découvrez les avantages d'un compte donateur !
JoinRejoignez the donors and/or premium!les donateurs et/ou premium !


Partenaires et pub
Notre partenaire Jarrety Calculatrices à acheter chez Calcuso
-
Stats.
1992 utilisateurs:
>1971 invités
>15 membres
>6 robots
Record simultané (sur 6 mois):
6892 utilisateurs (le 07/06/2017)
-
Autres sites intéressants
Texas Instruments Education
Global | France
 (English / Français)
Banque de programmes TI
ticalc.org
 (English)
La communauté TI-82
tout82.free.fr
 (Français)