社区
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,怎么办?
...全文
264
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写文章
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.
Linux后台开发工具箱-葵花宝典.pdf
本文是个大杂烩,内容为日常点滴的日积月累,持续更新当中,可关注博客(https://blog.csdn.net/Aquester或http://aquester.blog.chinaunix.net),查看最新版本。文中的内容,可
帮忙
开发提升分析和定位各类问题,比如找出导致IO负载高的进程等,以及一些简单的运维工作等。
luvit:Lua + libUV + jIT =纯真棒酱
Luvit 2.0-Lua Inventor的Node.JS 欢迎使用Luvit 2.0的源代码。 此仓库包含luvit / luvit元软件包和所有发布到luvit / *软件包。 这些软件包和模块的集合为 / 运行时实现了node.js样式的API。 它既可以用作库,也可以用作独立的可执行文件。 有关更多详细信息,请参见主项目网页。 需要
帮忙
? 在irc#luvit @ freenode或上通过问题提出问题。 二进制模块 Luvit支持基于FFI和Lua的二进制模块。 有一个Wiki条目,说明了如何在捆绑的应用程序中管理和包括二进制模块。 在Luvit Core上黑客 首先,您需要克隆并构建luvit,这很容易并且可以跨平台工作,这要归功于
Makefile
和make.bat 。 git clone https://github.com/luvit/luvit.git cd luvit make 如果要在不不断构建的情况下测试luvit,请使用luvi 。 luvi . 提交PR之前,请务必确保运行make test 。 维护者须知 使用luvi /path/to/
Makefile
工程实践视频课程(第2季):使用Autotools自动生成
Makefile
手写
makefile
太
难
了!浪费时间不说,还容易出问题!本门课程通过Autotools三剑客:automake、autoconf、libtool的使用,介绍如何使用这些工具去自动生成一个项目的
Makefile
:包括flat、shallow、deep等各种项目目录...
rustc-dev-guide-zh:Rustc Dev Guide 中文翻译
Rustc Dev Guide 中文翻译 的中文翻译已经启动。因为原项目还在变动期,为了翻译方便,所以此翻译项目组织结构就不和原项目保持一致了。 志愿者招募要求: 热爱 Rust,对 Rust 已经有一定了解 想深入了解 Rust 编译器 想为 Rust 编译器做贡献 业余时间充足 如何参与 认领感兴趣到章节 找到对应到 markdown 文件 直接发 PR 或者
帮忙
审校别人的 PR Q & A: 如何避免每个人翻译上的冲突呢,需要提前pr说翻译哪一章节吗? 其实没必要怕冲突,对于参与翻译的来说,翻译本身也是一次学习过程,是有收获的。了解编译器工作原理对理解 Rust 概念也有帮助的。如果同一篇有多个翻译,那我这边选翻译更好的就可以了。 这个项目倡导参与者自组织,但为了更加方便大家协作,还是来设置一个规则避免大家冲突。为了大家认领方便,特别创建了认领打卡的 issues,都去这里打一下卡
一文读懂
Makefile
一文读懂
makefile
Linux/Unix社区
23,107
社区成员
74,506
社区内容
发帖
与我相关
我的任务
Linux/Unix社区
Linux/Unix社区 应用程序开发区
复制链接
扫一扫
分享
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章