Frage

Ich bin mit flex (Lexer, nicht Adobe Flex) an einem Projekt. Allerdings möchte ich auch auf Windows-Plattformen kompilieren zu können, aber die Windows-Version 's neueste Version ist nur 2.5.4a, so wird es nicht meine Datei für 2.5.35 Version kompilieren. Und nein, ich kann nicht auf die höchsten unterstützten Windows-Version wechseln.

Wer weiß, über Pläne, die Windows-Version zu aktualisieren, oder einen Vorschlag auf Windows sowieso zu kompilieren haben?

War es hilfreich?

Lösung

Sie können auf der Mailingliste fragen, oder engagieren im Flex-Projekt selbst. Ich denke, die Code-Basis für Flex für eine Weile statisch geblieben ist, aber ich weiß nicht, wer den Windows-Port unterhält. In der Zwischenzeit ...

Ich würde empfehlen, einschließlich der erzeugten Quelle in Ihrem Projekt.

  1. Erstellen Sie den Lexer auf einem Linux-System Ihre lex.c / lex.h Dateien (oder was auch immer)
  2. zu erzeugen,
  3. Fügen Sie diese Dateien in Ihre Quelle Win32 C, bevor Sie bauen

Wenn Sie keinen direkten Zugriff auf ein Linux-System verfügen, kann eine virtuelle Maschine eine gute Idee sein. Die Flex-Quelle sollte Beschwerde in einigen C-Standard sein, die auf Windows basiert, aber die meisten der POSIX Unterschiede verändert werden kann Win32 API ziemlich leicht zu verwenden.

Vielleicht verteilen, wie:

/src/source_files.c
/src/lex.l
/src/win32_lex/lex.c

Auf diese Weise Systeme mit ein modernes flex die Quelle, aus der lex-Datei erzeugen kann, und Windows-Systemen die Quelle kompilieren können die komplementären vorverarbeiteten C-Dateien verwenden.

Kurz die Verwendung einig User-Space-POSIX (Cygwin oder was auch immer).

Ein wenig erforderlich zwicken, aber ist nicht, dass die Portabilität für Sie

Andere Tipps

Windows-Builds von flex 2.5.35 tun gibt, aber leider sind sie nicht eigenständig. Sie können die mingw bauen herunterladen hier und die Cygwin bauen hier ; finden Sie unter auch eine andere Frage Stackoverflow. Jeder Build setzt voraus, dass ihre jeweilige (mingw oder Cygwin) Kernel installiert werden.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top