Domanda

sto usando flettere (analizzatore lessicale, non Adobe Flex) su un progetto.Tuttavia, voglio essere in grado di compilare anche su piattaforme Windows, ma il file Versione di WindowsLa versione più recente di è solo 2.5.4a, quindi non compilerà il mio file per la versione 2.5.35.E no, non posso eseguire il downgrade alla versione Windows supportata più alta.

Qualcuno conosce piani per aggiornare la versione di Windows o ha comunque un suggerimento per compilare su Windows?

È stato utile?

Soluzione

Puoi chiedere sulla mailing list, o mettersi in gioco nel progetto Flex tu stesso.Penso che il codice base di Flex sia rimasto statico per un po', ma non so chi mantenga il port su Windows.Nel frattempo...

io raccomanderei inclusa la fonte prodotta nel tuo progetto.

  1. Genera il lexer su un sistema Linux per produrre i tuoi file lex.c/lex.h (o qualsiasi altra cosa)
  2. Includi questi file nel sorgente Win32 C prima di creare

Se non hai accesso diretto a un sistema Linux, una macchina virtuale potrebbe essere una buona idea.La fonte Flex Dovrebbe essere compatibile con alcuni standard C basati su Windows, ma la maggior parte delle differenze POSIX possono essere modificate per utilizzare l'API Win32 abbastanza facilmente.

Forse distribuire come:

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

In questo modo i sistemi con un flex moderno può generare il sorgente dal file lex e i sistemi Windows che compilano il sorgente possono utilizzare i file C preelaborati complementari.

A meno di utilizzare POSIX nello spazio utente (Cygwin o altro).

Sono necessarie un po' di modifiche, ma non è quella portabilità per te?!

Altri suggerimenti

di Windows build di Flex 2.5.35 esistono, ma purtroppo non sono autonomi. È possibile scaricare il MINGW costruire qui , e il Cygwin costruire qui ; vedi anche un'altra domanda StackOverflow . Ogni generazione richiede che sia installato il rispettivo (MINGW o Cygwin) del kernel.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top