社区
Linux/Unix社区
帖子详情
makefile,帮忙,有点难!
jolyalansunrain
2005-11-10 04:52:04
我在工程目录下有如下组织的文件:
src/file1.c file2.c file3.c
inc/file1.h file2.h file3.h
x.c
x.h
makefile
.
.
.
请问如何写这个makefile,当src或inc中任意一个文件修改,或x.c、x.h其中之一改变后,都要重新编译x.c得到x.o,怎么办?
...全文
281
11
打赏
收藏
makefile,帮忙,有点难!
我在工程目录下有如下组织的文件: src/file1.c file2.c file3.c inc/file1.h file2.h file3.h x.c x.h makefile . . . 请问如何写这个makefile,当src或inc中任意一个文件修改,或x.c、x.h其中之一改变后,都要重新编译x.c得到x.o,怎么办?
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
11 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
jolyalansunrain
2005-11-14
打赏
举报
回复
我也想用通配符来做,但不知怎么写,请赐教。
jolyalansunrain
2005-11-14
打赏
举报
回复
哦,谢谢。高手,在哪里?
deutsch
2005-11-12
打赏
举报
回复
推荐一本书
Managing Projects with GNU Make, Third Edition
by Robert Mecklenburg
Copyright . 2005, 1991, 1986 O’Reilly Media, Inc. All rights reserved.
在o'reilly的opensource有免费下载的全书。写makefile必备
chuanzhu
2005-11-11
打赏
举报
回复
可能用通配符*来解决。具体问高手吧!
analyser2003
2005-11-11
打赏
举报
回复
9494
yindesheng
2005-11-11
打赏
举报
回复
或x.c、x.h其中之一改变后,都要重新编译x.c得到新的x.o
===============================
x.o:x.c x.h
gcc -c x.c -o x.o
tengulre
2005-11-11
打赏
举报
回复
up
------------------------------------------------
可以接收传真、短信、语音、电子邮件的邮件系统.
欢迎去免费注册帐号。
http://www.megamail.com.cn
西部Linux联盟
http://www.westlinux.org
jolyalansunrain
2005-11-11
打赏
举报
回复
这样吧,我可能说得不太清楚:
我在工程目录下有如下组织的文件:
src/file1.c file2.c file3.c.....filex.c
inc/file1.h file2.h file3.h.....filex.h
1.c......x.c
1.h......x.h
.
.
.
makefile
请问如何写这个makefile,当src或inc中任意一个文件修改,或x.c、x.h其中之一改变后,都要重新编译x.c得到新的x.o,怎么办?像jwzhouVC() ( ) 那样当src、inc中某个文件修改了,make只会去重编file1.o file2.o file3.o.....filex.o,不会去编x.o,x.o不是最新的,连接不会通过的。怎么办?bekars(涡轮增压) 的我不是很懂呀。
jwzhouVC
2005-11-10
打赏
举报
回复
all:x
x:x.o file1.o file2.o file3.o
gcc -o x x.o file1.o file2.o file3.o
x.o:x.c
gcc -c -I. x.c
file1.o:./src/file1.c
gcc -c -I. -I./inc ./src/file1.c
file2.o:src/file2.c
gcc -c -I. -I./inc ./src/file2.c
file3.o:./src/file3.c
gcc -c -I. -I./inc ./src/file3.c
clean:
rm -rf *.o
rm -rf ./src/*.o
rm -rf x
bekars
2005-11-10
打赏
举报
回复
x.o依赖所有需要的文件,这些文件变动,make都会编译变化的文件的。
看一个Makefile的实现:
CC = gcc
INCLUDES = -I.
CFLAGS = -g -O2 $(INCLUDES) \
-Wall -Wunused -Wstrict-prototypes
DEFS =
COMPILE = $(CC) $(CFLAGS) $(DEFS)
OBJS = memory.o utils.o notify.o timer.o scheduler.o \
vector.o list.o html.o parser.o watchdog.o
HEADERS = $(OBJS:.o=.h)
.c.o:
$(COMPILE) -c $<
all: $(OBJS)
clean:
rm -f *.a *.o *~
distclean: clean
rm -f Makefile
memory.o: memory.c memory.h
utils.o: utils.c utils.h
notify.o: notify.c notify.h
timer.o: timer.c timer.h
scheduler.o: scheduler.c scheduler.h memory.h utils.h
vector.o: vector.c vector.h memory.h
list.o: list.c list.h memory.h
html.o: html.c html.h memory.h
parser.o: parser.c parser.h memory.h
watchdog.o: watchdog.c watchdog.h scheduler.h memory.h parser.h
kiron
2005-11-10
打赏
举报
回复
x.o: x.c x.h
[TAB]gcc -c x.c -I.
模仿速达界面
现在还没有实现图像变换功能,有哪位网友有空的话就
帮忙
加进去,再发布上来吧!!!” 腾鹰创作室的这个学习项目已公开分享,特别面向对编程和界面设计感兴趣的大学生。虽然目前的版本尚未包含图像变换功能,这为参与...
mapxtreme2008源程序
这可能包括如何正确配置构建环境,选择合适的打包工具(如Visual Studio、
Makefile
或Ant),以及如何处理特定平台或操作系统上的兼容性问题。 在压缩包子文件的文件名称列表中,“邯运集团车辆调度优化系统”可能是...
luvit:Lua + libUV + jIT =纯真棒酱
首先,您需要克隆并构建luvit,这很容易并且可以跨平台工作,这要归功于
Makefile
和make.bat 。 git clone https://github.com/luvit/luvit.git cd luvit make 如果要在不不断构建的情况下测试luvit,请使用luvi 。...
rustc-dev-guide-zh:Rustc Dev Guide 中文翻译
志愿者招募要求:热爱 Rust,对 Rust 已经有一定了解想深入了解 Rust 编译器想为 Rust 编译器做贡献业余时间充足如何参与认领感兴趣到章节找到对应到 markdown 文件直接发 PR或者
帮忙
审校别人的 PRQ & A:如何避免每...
一文读懂
Makefile
一文读懂
makefile
Linux/Unix社区
23,217
社区成员
74,540
社区内容
发帖
与我相关
我的任务
Linux/Unix社区
Linux/Unix社区 应用程序开发区
复制链接
扫一扫
分享
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章