Lex & Yacc mehrfach benutzen.
-
Hallo,
ich habe da ein Problem.Ich habe ein Modul geschrieben das ich als Bibliothek in ein anderes Program reinlinken will. Beide Programme benutzen einen Parser der auf Lex und Yacc basiert. Da Lex und Yacc beim Compelieren jeweils ihre eigenen Definitionen machen und funktionen ansteuern und fest definieren gibt es bei beiden "Programmen" kein Problem. Ich denke auch wenn ich die beiden Programe zusammen kompelieren will würde es das nicht geben, allerdings will ich die Bibliothek ja nicht neu kompelieren sondern hineinlinken. Dadurch bekomme ich beim Linken immer den Fehler das es eine mehrfach Definitionen von Lex-funktionen gibt. Wie kann ich das umgehen oder den Fehler beheben. Ich habe mich ein wenig umgehört und nicht wirklich viel nützliches dabei entnehmen können.
WÄre echt super wenn hier jemand eine Lösung hätteGruss Agnastan
-
Dieser Thread wurde von Moderator/in HumeSikkins aus dem Forum C++ in das Forum Rund um die Programmierung verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.
-
Vielleicht kannst Du das ganze in namespaces packen?
-
wie meinst du das in den Namespace. Ich kann doch keine von lex oder Yacc automatisch erzeugten Funktionen in den Namespace packen. Ich mein möglich ist das bestimmt aber das wäre eine mehr als unschöne Lösung, zumal die erzeugten Datein nich tgerade die leserlichsten sind
-
Ich versteh dein Problem nicht genau. Normalerweise schreibt man sich doch per lex die Lexikalische Analyse und darauf basierend dann mit yacc den Compiler. Wo genau treten denn die Namenskonflikte auf? Wie lautet der Fehler?
-
Man kann z.B. bei flex mit der -P option das yy-Präfix verändern. Bei bison geht dasselbe mit -p
-
jub danke bashar.. mit dem prefix geht das.. hatte das zwar gelesen aber wohl nicht gründlich genug... danke euch