Antworten:
lex.yy.c
ist der Standardname der Ausgabedatei für lex
den Präprozessor des lexikalischen Analysators für C (und C ++). Der Linker ( ld
) sucht nach einer aufgerufenen Datei libfl.so
(bei dynamischer Verknüpfung; libfl.a
bei statischer Verknüpfung). Dies ist die Laufzeitbibliothek, die von Lexern benötigt wird, die von Flex , einer Lex-Implementierung, generiert wurden .
Wenn Sie lex.yy.c
selbst mit generiert haben flex
, überprüfen Sie , ob Flex korrekt installiert ist. Zusätzlich zu der flex
ausführbaren Datei in Ihrem Pfad müssen Sie libfl.so
und libfl.a
(und libfl_pic.a
falls vorhanden) in Ihrem Bibliothekssuchpfad haben (normalerweise /usr/lib
oder /usr/local/lib
, abhängig davon, ob Flex aus einem Systempaket stammt oder nicht). Wenn Sie Flex an einem nicht standardmäßigen Speicherort haben, geben Sie den Bibliothekssuchpfad an mit -L
:
~/software/flex/bin/flex mylexer.l
g++ lex.yy.c -L ~/software/flex/lib -lfl