variables globales et lex/yacc - C - Programmation
Marsh Posté le 03-01-2004 à 17:16:44
heuh, ben, le mieux c'est de ne pas definir des vars globales comme ca.
methode :
a la place de
int roger;
tu mets
extern int roger;
et dans un .c (un seul, de ton choix) tu fous
int roger = 0;
Marsh Posté le 03-01-2004 à 17:22:07
marche pas il me dit :
undefined reference to les_vars_en_extern
à chacune des lignes auquelles je les utilise
mes_focntions.h
Code :
|
le nb_entrees est initialisé dans le main déclaré dans le .y
Marsh Posté le 03-01-2004 à 17:23:17
>>le nb_entrees est initialisé dans le main déclaré dans le .y
heuh tu me fais peur, la tu l'as bien mis en global au moins ?
Marsh Posté le 03-01-2004 à 17:28:52
il est en extern dans mes_fonctions.h,
compil.y sort compil.tab.c qui contient le nb_entrees=0 donc ça devrait aller non ??
tu veux dire quoi par global ?? là je suis plus
Faut pas avoir peur, c'est que de l'informatique
Marsh Posté le 03-01-2004 à 17:29:07
#ifndef __FONCTIONS_H__
déjà tu crois que y a combien de programmeurs au monde qui ont un jour appelé un truc "fonction" ?
Marsh Posté le 03-01-2004 à 17:30:14
ben une variable globale quoi ?
genre t'as fait :
1)
Code :
|
ou
Code :
|
(sachant que c la 2 la bonne)
Marsh Posté le 03-01-2004 à 17:31:08
correct c'ets modifié.
le makefile au cas où
Code :
|
Marsh Posté le 03-01-2004 à 17:41:32
int main
lis le manuel de make (les .PHONY ça te dit quelque chose ?
use www.scons.org luke
Marsh Posté le 03-01-2004 à 17:46:03
Citation : int main |
?
tu veux le main ? il est plus que basique.
Code :
|
les .PHONY ça me dit rien, je n'ai qu'une connaissance plus que basique de make.
- edit : top de la balle Merci -
je jette un oeil à la doc et à scons
- edit : scons à l'air un peu trop "puissant" pour ce que je fais. Ce n'est qu'un petit compilo fait pour un projet pendant mes études. En plus ça va me perturber le prof ça Par contre ça va dans les liens utiles au cas où un jour j'aurais un truc important à faire. Thanks -
Marsh Posté le 03-01-2004 à 17:15:22
bonjour à tous,
je suis en train d'écrire un compilateur et je rencontre un problème :
j'ai mes fonctions persos dans le fichier mes_fonctions.c et il a son .h associé que voici :
je fais un include de ce fichier dans mon fichier lex et dans mon fichier yacc pour pouvoir utiliser les fonctions globales ( et les variables aussi)
mais mon compilo renvoie ça :
gcc -g compil.tab.c lex.yy.c mes_fonctions.o -lfl -o mop
/tmp/ccXMZqFZ.o: In function `yylex':
/home/nico/projets/ma_compil/lex.yy.c:587: multiple definition of `nb_entrees'
/tmp/ccqXccBw.ousr/share/bison/bison.simple:405: first defined here
mes_fonctions.o: In function `traite_declaration':
/home/nico/projets/ma_compil/mes_fonctions.c:6: multiple definition of `nb_entrees'
/tmp/ccqXccBw.ousr/share/bison/bison.simple:405: first defined here
collect2: ld returned 1 exit status
avec le #ifndef il devrait pas y avoir de pb non ??
je sèche là...
Message édité par black_lord le 03-01-2004 à 17:15:56