2009-07-18 4 views
3

私はflex(Adobe Flexではなく、字句解析ツール)をプロジェクトに使用しています。しかし、私はWindowsプラットフォームでもコンパイルできるようにしたいが、Windows versionの最新バージョンは2.5.4aなので、バージョン2.5.35のファイルはコンパイルされません。また、サポートされている最高のWindowsバージョンにダウングレードすることはできません。フレックスの新しいバージョンはいつ利用できますか?

誰かがWindows版をアップグレードする計画について知っているか、とにかくWindows上でコンパイルするよう提案していますか?

答えて

4

フレックスプロジェクトではにご相談ください。 Flexのコードベースはしばらく静的なままだと思いますが、誰がWindowsポートを管理しているのか分かりません。その間に...

あなたのプロジェクトにはという生産されたソースを含むをお勧めします。

  1. あなたlex.c/lex.hファイル(または何でも)を生成するためのLinuxシステム上のレクサーを生成
  2. ます場合は、

を構築する前に、Win32のCソースでこれらのファイルをインクルードLinuxシステムに直接アクセスすることはできませんが、仮想マシンは良い考えです。 FlexソースがWindows上に構築されたC標準に苦情を受けなければなりませんが、POSIXの違いのほとんどはWin32 APIをかなり簡単に使用するように変更することができます。

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

を持つシステム現代フレックスはlexのファイルからソースを生成することができ、ソースをコンパイルするWindowsシステムは、補完的な前処理されたCファイルを使用することができます。この方法は:

はたぶんとして配布します。

ユーザスペースPOSIX(Cygwinなど)を使用していないこと。

微調整が必​​要ですが、は移植性がありません

+0

+1、個人的に私は、.lex/.yファイルが変更されたときだけCygwinを使用します。 –

+0

Linux版Flexを使ってCygwinを使ってコンパイルする方法を教えてください。私はこのプロジェクトに使用しようとしましたが、それほど遠くには達しませんでした。 – Jorn

+0

Flexソース自体をコンパイルする方法、またはFlexからCファイルを生成する方法は?既にFlexのcygwin版があるはずです –

1

フレックスのWindowsビルド2.5.35 doが存在しますが、残念ながらそれらは自己完結型ではありません。 MINGWビルドhereとCygwinビルドhereをダウンロードできます。 also another stackoverflow questionを参照してください。各ビルドでは、それぞれのMINGWまたはCygwinカーネルをインストールする必要があります。

関連する問題