|
|
make und flex
[thread]14343[/thread]
hide all
open all
-

+12 replies
-
|
perltiptop
|
2009-12-05 22:20 |
|
User since 2009-04-07
4
articles
|
Hallo Perlianer, auch wenn das nicht perl ist....
folgende make file moechte ich zum laufen bringen unter windows.
Das program flex habe ich vom http://flex.sourceforge.net/ runtergeladen.
Nun die Frage: wie muss der Path zum Aufruf von flex und libfl.a lauten?
Fehlermeldung
Der Befehl "C:\flex\flex-2.5.35\flex" ist entweder falsch geschrieben oder
konnte nicht gefunden werden.
*** No rule to make target -lfl', needed by `count_words'. Stop.
count_words: count_words.o lexer.o -lfl
gcc count_words.o lexer.o -lfl -ocount_words
count_words.o: count_words.c
gcc -c count_words.c
lexer.o: lexer.c
gcc -c lexer.c
lexer.c: lexer.l
flex -t lexer.l > lexer.c
|
|
|
|
-
|
perltiptop
|
2009-12-05 22:58 |
|
|
|
User since 2009-04-07
4
articles
|
noch was,
wo bekommt man ein libfl.a fuer Windows?
|
|
|
|
-

+6 replies
-
User since 2004-07-19
1307
articles
|
2009-12-05T21:20:28
perltiptop[...]
folgende make file moechte ich zum laufen bringen unter windows.
Das ist noch nicht aussagekräftig genug. Windows + MinGW, Windows + Cygwin, Windows + MSVC oder irgendetwas ganz anderes?
Quote
Dumme Frage: Hast Du es auch kompiliert und installiert?
Quote
Nun die Frage: wie muss der Path zum Aufruf von flex und libfl.a lauten?
Das kannst Du nur selbst beantworten, denn es hängt davon ab, wohin Du diese Dateien installiert hast.
Quote[...] | Code: |
|
count_words: count_words.o lexer.o -lfl gcc count_words.o lexer.o -lfl -ocount_words
|
[...]
Oh je, was für ein komisches Makefile. Normalerweise würde man eher so etwas schreiben:
| Code: |
|
count_words: count_words.o lexer.o gcc $^ -o $@ -lfl
|
Man muss ja Dinge, die Make in Variablen speichert nicht sinnlos wörtlich wiederholen. Und da -lfl nicht der Name eines Zieles ist, das Make erstellen kann, sollte man es auch nicht als Abhängigkeit angeben.
PS: Der Beitrag wäre wohl besser in den Sektionen "C und C++" oder "sonstige Sprachen, auch PHP" aufgehoben. Und [code]-Tags um Code, der nicht als Fließtext reformatiert werden sollte, würden auch nicht schaden.
|
|
When C++ is your hammer, every problem looks like your thumb.
|
|
|
|
-

+5 replies
-
|
guest Guest
|
2009-12-06 15:27 |
|
|
|
|
|
Murphey,
nur weil Du keine Ahnung von make und flex hast, muss etwas noch lange nicht sinnlos sein. libfl.a ist eine physikalische Datei und sehr wohl sinnvoll deren Existenz zu pruefen.
Dumm ist wenn man absolute Pfade angibt. Es ist auch moeglich den relativen Path von libfl.a dynamisch zu ermitteln.
|
|
|
|
-

+4 replies
-
User since 2004-07-19
1307
articles
|
Guest Guest[...]
libfl.a ist eine physikalische Datei und sehr wohl sinnvoll deren Existenz zu pruefen.
[...]
Sicher sollte es irgendwo eine Datei libfl.a geben, wenn man statisch gegen die Laufzeitumgebung von Flex linken möchte. Für meinen Kommentar ist das allerdings irrelevant, denn im Makefile wird nirgends libfl.a erwähnt, sondern vielmehr -lfl als Abhängigkeit eines Ziels angegeben. Jedes der verbreiteten Make-Programme versucht in diesem Fall ein Ziel mit dem Namen -lfl zu bauen und da in dem Makefile nirgends ein solches Ziel deklariert ist und auch keine implizite Regel existiert, die auf diese Zielangabe passt, meldet Make einen Fehler, den der Originalposter in seinem Beitrag auch erwähnte. Make ist keinesfalls in der Lage magisch zu erkennen, dass -lfl ein Flag für den Linker sein könnte und nach der passenden Bibliotheksdatei zu suchen.
Die Existenz von Bibliotheken und ihre Position im Dateisystem sollte man im Übrigen eher nicht in einem Makefile sondern in einem Konfigurationsschritt vor der Ausführung des Makefiles überprüfen.
@Guest: Sorgfältige Lektüre der Beiträge und Nachdenken vor dem Schreiben verhindern unqualifizierte Beiträge. Und Beleidigungen nutzen hier niemandem.
|
|
When C++ is your hammer, every problem looks like your thumb.
|
|
|
|
-
|
betterworld
|
2009-12-06 13:16 |
|
|
|
User since 2003-08-21
2363
articles
|
Move from Allgemeines zu Perl to C und C++
Wie von murphy empfohlen :)
|
To my continued amazement, the Perl folks are the only ones who never get upset. They just say "Haha, yeah, boy, you're right, it sure is ugly. Heh. Yeah, so, um, anyway, I'm going to get back to work now..." It's awesome. I've gained so much respect for them. src
|
|
|
|
-

+3 replies
-
|
GwenDragon
|
2009-12-06 15:09 |
|
|
|
User since 2005-01-17
6226
articles
|
Wo steht auf http://flex.sourceforge.net/, dass flex so für Windows geeignet ist, sich kompilieren lässt? Ich finde auf der Website von flex nichts.
Ansonsten könnte es ja für MingW oder Cygwin schon ein flex geben:
Für GnuWin32 gibt es flex.
Für MSYS/MingW auch.
Für Cygwin auch.
|
|
|
|
View all threads created 2009-12-05.
|