编译器tiny在linux下的makefile

发布于 2022-07-22 17:28:23 字数 1880 浏览 6 评论 2

《编译原理与实践》的小编译器tiny的源码好像是为windows量身定做的,我作了以下改动以在linux下运行
解压loucomp.zip后文件名都是大写的,编写以下脚本将大写文件名改为小写
for i in *
do
  mv $i `ls $i | tr [A-Z] [a-z]`
done
然后改动makefile文件如下:
#
# makefile for TINY
# Borland C Version
# K. Louden 2/3/98
#

CC = gcc

CFLAGS =

OBJS = main.o util.o scan.o parse.o symtab.o analyze.o code.o cgen.o

all: tiny tm

tiny: $(OBJS)
        $(CC) $(CFLAGS) -o $@ $(OBJS)

main.o: main.c globals.h util.h scan.h parse.h analyze.h cgen.h
        $(CC) $(CFLAGS) -c main.c

util.o: util.c util.h globals.h
        $(CC) $(CFLAGS) -c util.c

scan.o: scan.c scan.h util.h globals.h
        $(CC) $(CFLAGS) -c scan.c

parse.o: parse.c parse.h scan.h globals.h util.h
        $(CC) $(CFLAGS) -c parse.c

symtab.o: symtab.c symtab.h
        $(CC) $(CFLAGS) -c symtab.c

analyze.o: analyze.c globals.h symtab.h analyze.h
        $(CC) $(CFLAGS) -c analyze.c

code.o: code.c code.h globals.h
        $(CC) $(CFLAGS) -c code.c

cgen.o: cgen.c globals.h symtab.h code.h cgen.h
        $(CC) $(CFLAGS) -c cgen.c

clean:
        rm -f tiny tm *.o

tm: tm.c
        $(CC) $(CFLAGS) -o $@ tm.c
最后要把sample.tny文件重新粘贴(ctr+v)到一个新文件,否则parse()会报错。我想可能是回车换行的问题把,还没深入研究:)

[ 本帖最后由 mishuang 于 2006-5-20 22:56 编辑 ]

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

人间不值得 2022-07-23 17:46:07

呵呵,果然对了!

混浊又暗下来 2022-07-23 17:37:57

回车换行的问题可以用

dos2unix sample.tny试试

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文