NewNew 发表于 2010-10-27 09:52:25

这makefile不成功,今天有点冷,我在线上等!

各位好!请帮我看看下面的一段makefile怎么执行不成功:
1 obj = main.o
2 %.d:%.c
3   gcc -MM $< > $@.tmp         #如:main.o:main.c main1.h dep.h dep2.h
4                                             #打开$@.tmp,建立新的生成.d的规则,依赖所以的.h > $@ .

                                                #处理.tmp中的规则把形成需要的.d文件。这个你想怎么做就这么做
5   echo -n "$@ " > $@    #输入XX.d到$@加个空格不换行   如:main.d
6   cat >> $@             #把3条命令产生的东西追加到后面

                                    #如:main.d main.o:main.cmain1.h dep.h dep2.h   这就形成了新的规则了

                                    #main.d就与.h建立了依赖

NewNew 发表于 2010-10-27 10:28:54

不好意思!我是新手不知道是不是问题太简单了?急呀,真急

hygbeyond 发表于 2010-10-27 13:32:50

不是太简单了,是太复杂了。一般的人是不会研究这个问题的,你需要编译出这样的文件有什么用?
你可以先在命令行中测试好了之后,再翻译成Makefile格式。应该是你的命令格式有问题,具体我没有用过,帮不了你什么

NewNew 发表于 2010-10-27 13:37:04

回复【2楼】hygbeyond 胡勇刚
-----------------------------------------------------------------------

你好!嵌入式开发gcc gdb makefile不是最基本的,都得会吗?我只再学makefile写法,并是程序本身。请问你们都用什么开发工具

radiotommy 发表于 2010-10-27 14:03:46

obj = main.o
%d:%c
    gcc -MM $< > $@.tmp
    echo -n "$@ " > $@
    cat $@.tmp >> $@
         |
         |这里错了吧。

NewNew 发表于 2010-10-27 17:27:11

回复【4楼】radiotommy
-----------------------------------------------------------------------

可能是这里的问题,我这里没装Linux,晚上回去试试。另外我想问一下 main.d main.o:main.c main1.h dep.h dep2.h
和main.o main.d:main.c main1.h dep.h dep2.h没什么区别吧!
页: [1]
查看完整版本: 这makefile不成功,今天有点冷,我在线上等!