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