社区
Linux/Unix社区
帖子详情
makefile 利用后缀规则或者模式规则将.c与.o分开存放
nainainageding
2013-11-08 11:36:27
我想把生成的目标文件与源文件分开目录存放,但不知道怎么利用后缀或者模式规则,请问怎么弄?
...全文
211
2
打赏
收藏
makefile 利用后缀规则或者模式规则将.c与.o分开存放
我想把生成的目标文件与源文件分开目录存放,但不知道怎么利用后缀或者模式规则,请问怎么弄?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
2 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
nainainageding
2013-11-10
打赏
举报
回复
引用 1 楼 ytmayer 的回复:
dir1/%.o : dir2/%.c $(CC) ....
我之前是.c.o: $(CC) -c $< -o $@ 写的但是不能成功,要是源文件跟生成的.o在一个目录下就可以利用上述规则,分开存放就不好用,不知道是什么 原因,是不是源文件跟.o文件文件名必须相同才能用.o规则啊 我还想请问下,一般开发大的项目会自己写makefile吗?还是用工具生成?
mayer
2013-11-08
打赏
举报
回复
dir1/%.o : dir2/%.c $(CC) ....
Makefile
--
后缀
规则
Makefile
- 旧式
后缀
规则
后缀
规则
是一种 make 定义隐式
规则
的旧式方式。
模式
规则
更加通用、清晰,
后缀
规则
已经被废弃。为了兼容旧的
makefile
s,GNU make 依然支持
后缀
规则
。
后缀
规则
有两种形式:双
后缀
和单
后缀
。 双
后缀
规则
由一对
后缀
定义:target
后缀
和源文件
后缀
。双
后缀
规则
会匹配任意以 target
后缀
结尾的文件。对应的隐式依赖是 target 文件名加上源文件
后缀
。例如:双
后缀
.c.o (target
后缀
和源文件
后缀
分别为 .o和 .c)等效于
模式
规则
%.o: %.
后缀
规则
和
模式
规则
(.f.o and %.o:%.f)
这表示从所有的.f90文件生成相应的.o文件。这种写法使用了通配符来匹配文件的名称部分,而
后缀
(.f90和.o)定义了如何从.f90文件生成.o文件。
第九部分
Makefile
的隐含
规则
、
后缀
规则
、
模式
规则
第九部分 隐含
规则
#跟我一起写
Makefile
# 老式风格的"
后缀
规则
"&隐含
规则
搜索算法
目录 老式风格的"
后缀
规则
" 隐含
规则
搜索算法 老式风格的"
后缀
规则
"
后缀
规则
是一个比较老式的定义隐含
规则
的方法。
后缀
规则
会被
模式
规则
逐步地取代。因为
模式
规则
更强更清晰。为了和老版本的
Makefile
兼容,GNU make同样兼容于这些东西。
后缀
规则
有两种方式:"双
后缀
"和"单
后缀
"。 双
后缀
规则
定义了一对
后缀
:目标文件的
后缀
和依赖目标(源文件)的
后缀
...
Makefile
的
后缀
规则
和
模式
规则
.SUFFIXES: .c .c.o: gcc -c $ @echo haha app: aa.o aa1.o aa2.o gcc -o app.out aa.o aa1.o aa2.o aa.o: aa1.o aa2.o aa1.o: aa2.o: clean: @rm *.o @echo delete the object f
Linux/Unix社区
23,223
社区成员
74,536
社区内容
发帖
与我相关
我的任务
Linux/Unix社区
Linux/Unix社区 应用程序开发区
复制链接
扫一扫
分享
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章