Question

J'utilise (analyseur lexical, non Adobe Flex) flex sur un projet. Cependant, je veux être en mesure de compiler sur les plateformes Windows, ainsi, mais le version de Windows La nouvelle version de 'est seulement 2.5.4a, donc il ne sera pas compilé mon dossier pour la version 2.5.35. Et non, je ne peux pas revenir à la version Windows le plus pris en charge.

Quelqu'un sait sur les plans pour mettre à niveau la version Windows, ou qui ont une suggestion de compiler sur les fenêtres de toute façon?

Était-ce utile?

La solution

Vous pouvez demander sur la liste de diffusion, ou Engagez dans le projet Flex vous. Je pense que la base de code pour Flex est resté stable pendant un certain temps, mais je ne sais pas qui maintient le port de Windows. Dans l'intervalle ...

Je recommande y compris la source produit dans votre projet.

  1. Générer le lexer sur un système Linux pour produire vos lex.c / fichiers lex.h (ou autre)
  2. Inclure ces fichiers dans votre source Win32 C avant de construire

Si vous ne disposez pas d'un accès direct à un système Linux, une machine virtuelle peut être une bonne idée. La source Flex devrait être plainte à une norme C qui fait fond sur Windows, mais la plupart des différences de POSIX peuvent être modifiés pour utiliser l'API Win32 assez facilement.

Peut-être distribuer comme:

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

Ce système de manière avec un flex moderne peut générer la source à partir du fichier lex, et les systèmes Windows compilant la source peut utiliser les fichiers C prétraitées complémentaires.

Court d'utiliser certains POSIX (Cygwin ou autre) espace utilisateur.

Un peu de peaufinage nécessaire, mais n'est pas que la portabilité pour vous

Autres conseils

Les versions Windows de flex 2.5.35 font existent, mais malheureusement, ils ne sont pas AUTONOME. Vous pouvez télécharger le MINGW construire et la CYGWIN ici ; voir aussi une autre question stackoverflow. Chaque construction exige que son noyau respectif (MINGW ou Cygwin) installé.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top