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,怎么办?
...全文
306 11 打赏 收藏 转发到动态 举报
写回复
用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.
内容概要:本文针对无刷直流电机驱动的电子机械制动(EMB)执行器,建立了考虑Stribeck摩擦特性的非线性耦合动力学模型,并在Simulink环境中完成了系统级仿真分析。研究综合集成了电机动力学、齿轮传动机构与制动执行机构的动力学特性,构建了高保真的机电一体化系统模型。重点引入Stribeck摩擦模型以精确描述低速工况下执行器内部存在的静摩擦、粘滞摩擦与库仑摩擦之间的过渡行为,有效提升了系统在启停、反向运动等瞬态过程中的动态响应仿真精度。通过多工况仿真验证了模型的有效性,能够准确反映摩擦引起的爬行、滞后与定位误差等非线性现象,为EMB系统的高性能控制算法设计(如摩擦补偿、滑模控制)与结构优化提供了高可信度的仿真平台。; 适合人群:从事汽车电子制动系统、电机驱动控制、机电系统建模与仿真研究的研究生、科研人员及工程技术人员,需具备扎实的机械动力学、自动控制理论基础和MATLAB/Simulink仿真能力。; 使用场景及目标:①用于高精度电子机械制动系统的设计验证与性能预测;②为消除摩擦非线性影响的先进控制策略(如自适应控制、智能控制)提供精确的被控对象模型;③深入探究Stribeck摩擦等非线性因素对系统动态性能(如响应延迟、稳态误差)的作用机理; 阅读建议:读者应结合提供的Simulink模型文件,深入剖析Stribeck摩擦模块的数学实现与参数辨识方法,建议通过改变输入指令(如阶跃、正弦)和负载条件进行对比仿真,以直观理解非线性摩擦对系统动态特性的影响。

23,223

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧