现在的位置: 首页 > 综合 > 正文

Managing Projects with GNU make 3rd Edition(1)

2018年12月16日 ⁄ 综合 ⁄ 共 737字 ⁄ 字号 评论关闭

第1个例子需要一点flex和bison的知识,可以参考书籍flex and bison by Jobn Levine,第1个例子大概的思路就是使用lexerwg命令将lexer.l文件编译成C语言文件,qd然后使用make来编译。

先介绍不用makefile运行此例子的步骤。

文件lexer.l的内容为:

int fee_count = 0;
	int fie_count = 0;
	int foe_count = 0;
	int fum_count = 0;
%%
fee	fee_count++;
fie	fie_count++;
foe	foe_count++;
fum	fum_count++;

若不使用makefile,直接使用命令flex -t flexer.l > flexer.c可以生成flex.c文件。

使用命令gcc -c -o count_words.o count_words.c 编译count_words.c生成count_words.o文件。
使用命令gcc -c -o lexer.o lexer.c编译lexer.c生成lexer.o文件。
使用命令gcc count_words.o lexer.o -lfl -o count_words链接生成可执行文件count_words。

若使用makefile编译这些文件,makefile文件内容为:

count_words: count_words.o lexer.o -lfl
	gcc count_words.o lexer.o -lfl -ocount_words

count_words.o: count_words.c
	gcc -c count_words.c

lexer.o: lexer.c
	gcc -c lexer.c

lexer.c: lexer.l
	flex -t lexer.l > lexer.c

直接使用make即可编译这些文件。

抱歉!评论已关闭.