2016-09-19 3 views
0

私は実際のプロジェクトで使用する前にflexで少し試して再生していますが、私は問題を抱えています。"<FlexLexer.h>が見つかりません"、C++モードでのみ発生

私はTermuxという名前のLinuxエミュレータを使用してAndroidで作業しています。 flexをインストールして、それぞれ$ apt install flex$ apt install clangを実行しています。

Cのフレックスコードを書いて$ flex filenameで処理した後、$ gcc -lfl lex.yy.cでコンパイルすると、すべてがコンパイルされ、バイナリが完全に動作することに気付きました。

しかし、私は、$ flex -+ filenameとそれを処理(C++のみの機能を使用してIE)C++用のFlexのコードを記述し、$ g++ -lfl lex.yy.ccでそれをコンパイルし、コンパイル時にエラーがファイルFlexLexer.hと言って飛び出した場合、

#include <FlexLexer.h> 
として含ま

が見つかりませんでした。

これはなぜC++を使用する場合にのみ発生しますか?私は実際にC++のためにそれを必要としているので、エミュレータを使ってAndroidで作業していることをどのようにして解決できますか?

+0

FlexLexer.hは現在どこにありますか?どのディレクトリ? – Techidiot

+0

@Tchidiot私は本当に知りません。私が言ったように、 '$ apt install flex 'でインストールしたので、'/data'のように通常はアクセスできないディレクトリにあります。 – user6245072

+0

ライブラリを参照するファイル 'gcc lex.yy.c -lfl'や' g ++ lex.yy.cc -lfl'の後ろに '-l'オプション*をつけてください。私は常に '-Wall'を使い、' a.out'に実行可能ファイルを入れるのではなく、 '-o executable-name'で明示的な出力ファイルを指定することをお勧めします。 – rici

答えて

1

これはTermuxのflexパッケージのバグで、apt update && apt upgradeを実行してFlexLexer.hを含むアップデートパッケージを入手しました。

+0

実際の作成者が私の質問にanserに期待したことはありません。どうもありがとう!とにかく 'termux'タグがないのはなぜですか? – user6245072

関連する問題