次のコマンドを実行した後:
g++ lex.yy.c -lfl
次のエラーが発生します。
/usr/bin/ld: cannot find -lfl
どうすれば解決できますか?
答え1
lex.yy.c
デフォルトの出力ファイル名。lex
、C(およびC ++)用の語彙アナライザプリプロセッサです。これコネクタ()は、(動的にリンクされている場合、そうでない場合は静的にリンクされている場合)、名前ld
のファイルを探しています。生成された語彙アナライザに必要なランタイムライブラリ。libfl.so
libfl.a
柔軟、lexの実装。
lex.yy.c
自分で作成した場合は、flex
Flexが正しくインストールされていることを確認してください。パスに実行可能ファイルを含めることに加えて、flex
ライブラリ検索パスlibfl.so
におよびがあるlibfl.a
場合はそれを含める必要があります(Flexがシステムパッケージで提供されているかどうかに応じてlibfl_pic.a
通常/usr/lib
または)。/usr/local/lib
Flexが非標準の場所にある場合は、次のコマンドを使用してライブラリ検索パスを指定します-L
。
~/software/flex/bin/flex mylexer.l
g++ lex.yy.c -L ~/software/flex/lib -lfl
答え2
私のSciOsディストリビューションにこのパッケージをインストールすることはflex-devel.x86_64
私にとって効果的でした。