QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 1182|回复: 14

turboc2里面的makefile怎么写啊?大家别打我!

[复制链接]
发表于 2004-6-11 18:21:41 | 显示全部楼层 |阅读模式
我们这里大都用win下的turboc,我在linux编写的c语言程序无法在turboc2下编译啊,因此要求在turboc2编写makefile,怎么写啊,有谁知道的?先谢谢了!
发表于 2004-6-11 19:26:34 | 显示全部楼层
不懂,不过不要makefile不行吗?
回复

使用道具 举报

 楼主| 发表于 2004-6-11 19:43:07 | 显示全部楼层
不要makefile的话好多文件自己一个一个编译吗?麻烦啊
回复

使用道具 举报

发表于 2004-6-11 20:17:02 | 显示全部楼层
我想那关键是找个win下的make工具吧
回复

使用道具 举报

 楼主| 发表于 2004-6-11 20:58:30 | 显示全部楼层
turboc2里面就有make啊
回复

使用道具 举报

发表于 2004-6-11 21:14:22 | 显示全部楼层
gcc -o a.out *.o试试。
回复

使用道具 举报

 楼主| 发表于 2004-6-11 21:31:48 | 显示全部楼层
[quote:50d2b26601="sagaeon"]gcc -o a.out *.o试试。[/quote]
呵呵,你是说的刚才的吧,linux下我已经解决了,原来是没有目标文件,哈哈 真是想去死了!
win下不知道是不是也少了??
不过好像不可能的,我用tcc -c ×××.c输出了×××.obj然后tcc ×××.obj可以生成.exe文件,可是用了makefile就是N多错误!气死我了!!!
回复

使用道具 举报

发表于 2004-6-11 21:46:27 | 显示全部楼层
DJGPP/MingW不就完了吗?

鄙视Borland……
回复

使用道具 举报

 楼主| 发表于 2004-6-11 21:54:48 | 显示全部楼层
[quote:12a9edfaf2="Miliardo"]
DJGPP/MingW不就完了吗?
[/quote]
没用过!
[quote:12a9edfaf2="Miliardo"]鄙视Borland……[/quote]
存在就有理由,我们这里是学校,大家都用tc我有理由不用么,再说tc也还是不错的哦
回复

使用道具 举报

发表于 2004-6-11 23:18:40 | 显示全部楼层
假设项目中有三个文件main.c、support.c、support.h,则Makefile可以这么写:
[code:1]
all : mygame  
mygame : main.o support.o  
        tcc -o mygame main.o support.o  
support.o : support.c support.h  
        tcc -c support.c  
main.o : main.c  
        tcc -c main.c  
[/code:1]

注意tcc前的分隔符要用tab。这种写法对项目文件不太多时还行,如果文件多的话要一一写完它们的文件名就麻烦了,所以我再讲一个全自动的。
回复

使用道具 举报

发表于 2004-6-11 23:23:33 | 显示全部楼层
这里是全自动Makefile的例子,在Linux下运行良好,我没试过tc下能不能正常使用。

[code:1]
EXENAME = mygame  
CC = tcc  
CFLAGS = -O2  
INCLUDE =  
LIBS =  
HEADER =  
OBJS = main.o support.o  
  
all: $(EXENAME)  
  
.c.o:  
        $(CC) -c $(CFLAGS) $(INCLUDE) $<

$(EXENAME): $(OBJS)
        $(CC) -o $(EXENAME) $(OBJS) $(LIBS)
[/code:1]

就算项目中有再多的文件,也只需在“OBJS = ”一行再写入filename.o就可以了。
回复

使用道具 举报

 楼主| 发表于 2004-6-12 22:57:58 | 显示全部楼层
[quote:8652082eaa="lanche"]假设项目中有三个文件main.c、support.c、support.h,则Makefile可以这么写:
[code:1]
all : mygame  
mygame : main.o support.o  
        tcc -o mygame main.o support.o  
support.o : support.c support.h  
        tcc -c support.c  
main.o : main.c  
        tcc -c main.c  
[/code:1]

注意tcc前的分隔符要用tab。这种写法对项目文件不太多时还行,如果文件多的话要一一写完它们的文件名就麻烦了,所以我再讲一个全自动的。[/quote]
谢谢关心,可是还是不行,我昨天写的也是和这个差不多,提示错误也一样,说是

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
回复

使用道具 举报

 楼主| 发表于 2004-6-12 22:59:02 | 显示全部楼层
[code:1]
all:test.exe
test.exe:test.h test.obj test2.obj test3.obj
        tcc -o test.obj test2.obj test3.obj
test.obj:test.c
        tcc -c test.c
test2.obj:test.h test2.c
        tcc -c test2.c
test3.obj:test.h test3.c
        tcc -c test3.c
[/code:1]
如果单独编译可以成功
命令:
tcc -c *.c
tcc -o *.obj
ok!
回复

使用道具 举报

发表于 2004-6-13 17:57:55 | 显示全部楼层
哦,想起来了,在TURBO C下面是可以添加工程得(我不记得是哪一栏菜单了),你选有一项OPEN PROJECT,然后输入新工程名字,就可以完成新建,在打开工程以后,再在同一栏菜单里边选ADD ITEM(好像是把)把文件都添加到工程里边,然后点菜单选MAKE ALL(或者是BUILD ALL)就可以完成所有文件得编译。
回复

使用道具 举报

 楼主| 发表于 2004-6-13 22:25:36 | 显示全部楼层
[quote:80cca4a3b6="quarkonics"]哦,想起来了,在TURBO C下面是可以添加工程得(我不记得是哪一栏菜单了),你选有一项OPEN PROJECT,然后输入新工程名字,就可以完成新建,在打开工程以后,再在同一栏菜单里边选ADD ITEM(好像是把)把文件都添加到工程里边,然后点菜单选MAKE ALL(或者是BUILD ALL)就可以完成所有文件得编译。[/quote]
没错啊,这个在tc的环境下是可以的,但是在command环境下不可以,还有什么办法可以搞定的?我看了一本参考书,是他那里面说可以写makefile的,而且说了怎么写,我完全照抄,结果不可以!这本参考书可是外国人写的啊,c99的成员,可以说是权威的参考书了,可是……还是不行
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2024-11-8 05:38 , Processed in 0.089866 second(s), 16 queries .

© 2021 Powered by Discuz! X3.5.

快速回复 返回顶部 返回列表