gpt4 book ai didi

c++ - 在使用 yacc 和 lex 的 CodeBlocks/Eclipse 中构建 C++ 项目

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:36:49 24 4
gpt4 key购买 nike

我有以下 makefile,它运行良好,可以构建我的应用程序。我如何配置一个 IDE(比如代码块、eclipse)来编译它。当我从 eclipse/codeblocks 尝试时,与 yacc 关联的 C/C++ 文件出现一些错误。有什么方法可以使 eclipse/codeblocks 在构建/链接时直接对某些组件使用目标文件,而无需指定(包括在项目中)相应的 .cc 文件?如果是这样,我可以直接使用 y.tab.olex.yy.o,因为它们在我的项目中没有改变。

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

最佳答案

如果您已经有 Makefile,则可以在 Eclipse 中使用“Makefile 项目”。在这种情况下,Eclipse 将使用“make”而不是内部构建器来构建项目。

关于c++ - 在使用 yacc 和 lex 的 CodeBlocks/Eclipse 中构建 C++ 项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4736283/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com