xspider 发表于 2006-8-31 13:58:08

makefile怎么编绎不同文件夹的.c和.h?

有没有例程参照下?

harrylee 发表于 2006-9-1 10:03:05

也需要一个例子啊。

点击此处下载armok01127780.rar

这个例子是GCC的网站提供的。用的1602的LCD,UART

xspider 发表于 2006-9-1 15:02:30

不过,例子看过,但是他只有一个目录,我想了解不同目录下的源程序连接。

at90s 发表于 2006-9-1 22:11:07

在添加原文件时使用相对路径就可以了



如:a0.c./a/a1.c../b/b1.c



上面添加了当前目录的a0.c、当前目录下a子目录下的a1.c、当前目录的上一级目录下的b子目录下的b1.c

at90s 发表于 2006-9-1 22:13:09

或者使用绝对路径

xspider 发表于 2006-9-2 13:38:22

请教at90s兄,那a0.c所带的a0.h怎么处理啊?

Ksharp007 发表于 2006-9-2 15:17:47

.h文件好像不用包含的吧?

我把例程里的makefile拷贝到了我自己的文件夹下,编译我的代码,提示DDRE,DDRF,DDRG,PORTE,PORTF,PORTG未定义,怎么办呢?我用的是mega64,

是像下面这么改吗?

# 单片机类型

MCU = atmega16

改成

MCU = atmega64      ?

xspider 发表于 2006-9-3 08:47:43

但是我用#include <a0.h>,它就提示找不到,其中a0.h在文件夹a0中的。

passerby 发表于 2006-9-3 09:38:59

#include "a0.h"即可.



我也遇到类似的问题,看到很多人的gcc的代码都是不论多少个文件都放在同一个文件夹里面.

像你这样每个.c文件如果只包含自己的.h文件,那放在不同的文件夹是可以的.



但是,如果我们把一些公用的内容提出来,做成了一个common.h,那就麻烦了,如果各个文件放在不同的文件夹里面,公共的头文件放在何处?怎么包含?上层模块要包含底层模块的.h文件时,也有类似的问题.用绝对路径显然不是好办法----一改存放的位置,还得去改makefile文件.每个文件夹里面复制一个也不是好办法----要改动一点又得重新复制一遍.所以最后的结果就是把所有的文件都放在了同一个文件夹里面.就不再细分了.有时二三十个文件,都放在同一个文件夹里面,真是乱呀.



谁有更好的办法呢?也许gcc只能这样用吧.

xspider 发表于 2006-9-4 08:33:15

请教楼上的朋友,绝对路径是怎么样表示的?怎么去改makefile的?谢谢。

passerby 发表于 2006-9-4 09:12:57

所谓绝对路径就是把盘符和一层层的目录名都写上.比如D:\abc3\ok\a256.c

至于怎么改makefile,可以去看网站的标准例子,里面有加了汉语注释的makefile

在里面就能看到在什么地方改,怎么改,makefile没有后缀,是文本文件,用任何文字编辑器打开即可.

zwhzwh_11 发表于 2013-7-18 22:00:53

2楼的可以编译过。学习了
页: [1]
查看完整版本: makefile怎么编绎不同文件夹的.c和.h?