makefile怎么编绎不同文件夹的.c和.h?
有没有例程参照下? 也需要一个例子啊。点击此处下载armok01127780.rar
这个例子是GCC的网站提供的。用的1602的LCD,UART 不过,例子看过,但是他只有一个目录,我想了解不同目录下的源程序连接。 在添加原文件时使用相对路径就可以了
如:a0.c./a/a1.c../b/b1.c
上面添加了当前目录的a0.c、当前目录下a子目录下的a1.c、当前目录的上一级目录下的b子目录下的b1.c 或者使用绝对路径 请教at90s兄,那a0.c所带的a0.h怎么处理啊? .h文件好像不用包含的吧?
我把例程里的makefile拷贝到了我自己的文件夹下,编译我的代码,提示DDRE,DDRF,DDRG,PORTE,PORTF,PORTG未定义,怎么办呢?我用的是mega64,
是像下面这么改吗?
# 单片机类型
MCU = atmega16
改成
MCU = atmega64 ? 但是我用#include <a0.h>,它就提示找不到,其中a0.h在文件夹a0中的。 #include "a0.h"即可.
我也遇到类似的问题,看到很多人的gcc的代码都是不论多少个文件都放在同一个文件夹里面.
像你这样每个.c文件如果只包含自己的.h文件,那放在不同的文件夹是可以的.
但是,如果我们把一些公用的内容提出来,做成了一个common.h,那就麻烦了,如果各个文件放在不同的文件夹里面,公共的头文件放在何处?怎么包含?上层模块要包含底层模块的.h文件时,也有类似的问题.用绝对路径显然不是好办法----一改存放的位置,还得去改makefile文件.每个文件夹里面复制一个也不是好办法----要改动一点又得重新复制一遍.所以最后的结果就是把所有的文件都放在了同一个文件夹里面.就不再细分了.有时二三十个文件,都放在同一个文件夹里面,真是乱呀.
谁有更好的办法呢?也许gcc只能这样用吧. 请教楼上的朋友,绝对路径是怎么样表示的?怎么去改makefile的?谢谢。 所谓绝对路径就是把盘符和一层层的目录名都写上.比如D:\abc3\ok\a256.c
至于怎么改makefile,可以去看网站的标准例子,里面有加了汉语注释的makefile
在里面就能看到在什么地方改,怎么改,makefile没有后缀,是文本文件,用任何文字编辑器打开即可. 2楼的可以编译过。学习了
页:
[1]