linux - フレックスから生成されたファイルの使用に関する問題

linux compiler-errors flex-lexer

flexを使用するプロジェクト(adobeではなくfast lex)をセットアップしようとしています。 Ubuntuで実行していて、apt-getメソッドを使用してflexをインストールしました。

私はコンパイルエラーをグーグルで検索し、その周りに独自のパッチを作成しただけの人か、誰もが質問して誰も答えないフォーラムをたくさん見つけました。

これは私の.llファイルです

%option c++

%%

%%


これは、メインファイルに含めるlex.yy.ccファイルを生成します。

#include "lex.yy.cc"

int main ()
{
    return 0;
}


私が得るエラーは、このような多くの「多重定義」エラーです。


lex.yy.cc | 511 | `yyFlexLexer::yylex() 'の複数の定義|


私はかなり立ち往生しています。フレックスのバージョンは2.5.35で、code::blocksエディターを介してgccコンパイラーを使用しています。

ターミナルから直接メインファイルをコンパイルすると、わかった


`yyFlexLexer::yywrap() 'への未定義の参照
答え
問題が見つかりました!生成されたファイルを含めるのではなく、コンパイルしてオブジェクトファイルとして含める必要があります。

flex file.ll 
g++ -c lex.yy.cc 
g++ -o main main.cpp lex.yy.o
関連記事

linux - 安全、プライベート、ローカルの貴重な

linux - EC2 Linuxインスタンスの起動時にプログラムを開始する

linux - Linux Tomcat + Windows Auth

android - posix setuid別のプロセス

java - Mavenビルド後に「ライブ」ディレクトリ構造を構築する正しい方法は?

c - 保存されたコンテキストからのスレッドの再開

linux - ディレクトリ内のファイルが追加されたときに、inotify-toolsを使用してメールを送信するにはどうすればよいですか?

ruby-on-rails - ruby1.9.2のインストールに関する問題

php - LinuxへのCakePHPのインストールに関する問題

linux - vimのフィルターコマンドからの入力後にカーソルを次の行に移動