私は実際のプロジェクトで使用する前に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で作業していることをどのようにして解決できますか?
FlexLexer.hは現在どこにありますか?どのディレクトリ? – Techidiot
@Tchidiot私は本当に知りません。私が言ったように、 '$ apt install flex 'でインストールしたので、'/data'のように通常はアクセスできないディレクトリにあります。 – user6245072
ライブラリを参照するファイル 'gcc lex.yy.c -lfl'や' g ++ lex.yy.cc -lfl'の後ろに '-l'オプション*をつけてください。私は常に '-Wall'を使い、' a.out'に実行可能ファイルを入れるのではなく、 '-o executable-name'で明示的な出力ファイルを指定することをお勧めします。 – rici