Sur mon ordinateur (Windows exécutant cygwin) il compile correctement. Flex est la version 2.5.35 et bison est la version 2.3Pourquoi mon compilateur flex/yacc ne compile pas correctement sur une autre machine linux
Sur la machine Linux 1, elle se compile correctement. Flex est la version 2.5.4 et bison est la version 1.875c.
Sur la machine Linux 2, elle n'est pas compilée correctement. Flex est la version 2.5.4 et bison est 2.3.
En regardant les numéros de version de flex/bison, on peut s'attendre à ce que, compilé correctement sur ma machine, il compile correctement sur la machine 2, mais ce n'est pas le cas.
Sur la machine linux 2, quand je lance y.tab.c gcc -c Je reçois les avertissements suivants à plusieurs reprises
avertissement: déclaration implicite de la fonction intégrée « printf »
Et quand Je lance ce qui suit
gcc -o cminus y.tab.o lex.yy.o ly -lfl
Je reçois l'erreur suivante.
gcc -o cminus y.tab.o lex.yy.o -ly -lfl
/usr/bin/ld: cannot find -ly
collect2: ld returned 1 exit status
make: *** [cminus] Error 1
Cette erreur peut être retirée en prenant l'option ly dans gcc pour que le programme compile, mais le programme compilé ne fonctionne pas correctement comme il le fait sur ma machine et l'autre machine Linux.
Quel pourrait être le problème?
Le #include manquant est pour –
quark
Oui, pour une raison quelconque stackoverflow ne montre pas le en les citations dans ma réponse –