2011-01-19 16 views
5

私のアプリケーションを構築するには、以下のmakefileがうまくいきます。これをコンパイルするにはどうすればIDE(例えば、codeblocks、eclipse)を設定するのですか? yaccに関連するC/C++ファイルは、eclipse/codeblocksから試してみるといくつかのエラーが出ます。対応する.ccファイルを(プロジェクトを含めて)指定せずにビルド/リンクしている間に、いくつかのコンポーネントのオブジェクトファイルを直接使用するeclipse/codeblocksを作成する方法はありますか? その場合、y.tab.olex.yy.oを私のプロジェクトで変更されていないものとして直接使用することができます。CodeBlocks/Eclipseでyaccとlexを使用するC++プロジェクトをビルドする

CC = g++ -O2 -Wno-deprecated 

tag = -i 

ifdef linux 
tag = -n 
endif 

main.out: Sentence.o XOperation.o XOperationEngine.o Schema.o Doc.o TaskMan.o y.tab.o lex.yy.o test.o 
    $(CC) -o main.out Sentence.o XOperation.o XOperationEngine.o Schema.o Doc.o TaskMan.o y.tab.o lex.yy.o test.o -lfl 

main.o: main.cc 
    $(CC) -g -c main.cc 

XOperation.o: XOperation.cc 
    $(CC) -g -c XOperation.cc 

XOperationEngine.o: XOperationEngine.cc 
    $(CC) -g -c XOperationEngine.cc 

TaskMan.o: TaskMan.cc 
    $(CC) -g -c TaskMan.cc 

Doc.o: Doc.cc 
    $(CC) -g -c Doc.cc 

Sentence.o: Sentence.cc 
    $(CC) -g -c Sentence.cc 

Schema.o: Schema.cc 
    $(CC) -g -c Schema.cc 

y.tab.o: Parser.y 
    yacc -d Parser.y 
    sed $(tag) y.tab.c -e "s/ __attribute__ ((__unused__))$$/# ifndef __cplusplus\n __attribute__ ((__unused__));\n# endif/" 
    g++ -c y.tab.c 

lex.yy.o: Lexer.l 
    lex Lexer.l 
    gcc -c lex.yy.c 

clean: 
    rm -f *.o 
    rm -f *.out 
    rm -f y.tab.c 
    rm -f lex.yy.c 
    rm -f y.tab.h 

答えて

4

すでにMakefileをお持ちの場合は、Eclipseで 'Makefile project'を使用できます。この場合、Eclipseは内部ビルダーの代わりに「make」を使用してプロジェクトをビルドします。

関連する問題