3

プロジェクトでflex (Adobe Flex ではなく語彙アナライザー) を使用しています。ただし、Windows プラットフォームでもコンパイルできるようにしたいのですが、Windows バージョンの最新バージョンは 2.5.4a しかないため、バージョン 2.5.35 のファイルをコンパイルできません。いいえ、サポートされている Windows の最高バージョンにダウングレードすることはできません。

Windows バージョンをアップグレードする計画について知っている人はいますか、それとも Windows でコンパイルするための提案がありますか?

4

2 に答える 2

4

メーリング リストで質問するか、自分で Flex プロジェクトに参加してください。Flex のコードベースはしばらくの間静的のままだったと思いますが、誰が Windows ポートを維持しているのかわかりません。とりあえず…

作成したソースをプロジェクトに含めることをお勧めします。

  1. Linux システムでレクサーを生成して、lex.c/lex.h ファイル (または何でも) を生成します。
  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など)を使用することはできません。

少し微調整が必​​要ですが、その移植性はあなたのためではありません!

于 2009-07-18T19:34:05.910 に答える
1

flex 2.5.35 の Windows ビルドは存在しますが、残念ながら自己完結型ではありません。MINGW ビルドはここから、Cygwin ビルドはここからダウンロードできます。別のスタックオーバーフローの質問も参照してください。各ビルドには、それぞれの (MINGW または Cygwin) カーネルがインストールされている必要があります。

于 2010-05-08T00:15:04.750 に答える