社区
Linux/Unix社区
帖子详情
makefile中*.o”为什么写成 “%.o”不行,%.o不是表示所有的的.o文件吗?
超级搬砖工
2017-11-24 09:52:39
makefile如下:
CC=gcc
LIB=pthread
main.obj:*.o
$(CC) $^ -o $@ -l$(LIB)
%.o:%.c
$(CC) -c $< -o $@
clean:
rm *.o
rm *.obj
问题:
“main.obj:*.o”中的“*.o”为什么写成 “%.o”不行,%.o不是表示所有的的.o文件吗?要怎么改
...全文
858
2
打赏
收藏
makefile中*.o”为什么写成 “%.o”不行,%.o不是表示所有的的.o文件吗?
makefile如下: CC=gcc LIB=pthread main.obj:*.o $(CC) $^ -o $@ -l$(LIB) %.o:%.c $(CC) -c $< -o $@ clean: rm *.o rm *.obj 问题: “main.obj:*.o”中的“*.o”为什么写成 “%.o”不行,%.o不是表示所有的的.o文件吗?要怎么改
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
2 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
超级搬砖工
2017-11-24
打赏
举报
回复
非常感谢,懂了
老马何以识途
2017-11-24
打赏
举报
回复
2
这篇文章讲的比较清楚了:
http://www.cnblogs.com/warren-wong/p/3979270.html
*代表当前目录下所有,%类似于一个宏是从前一个目标带入时才用的,会用带入的值替换掉%
Makefile
中
的%和*
举例,%.o
表示
匹配所有的.o
文件
,注意是用于匹配的。
Makefile
中
的%
表示
通配符,而*
表示
任意字符。*.o是
表示
所有的.o
文件
。
makefile
的语法及写法(补充:%和*的区别)
Makefile
中
的%标记和系统通配符*的区别在于,*是应用在系统
中
的,%是应用在这个
Makefile
文件
中
的。 通配符%的意思是: 当没有目标test1.o时,我要找test1.o的构造规则,看看
Makefile
中
那个规则符合。 然后找到了...
Makefile
的静态模式%.o : %.c
Makefile
的静态模式是一个特别高效的“自动化”编译器,“静态”二字,我觉得是直译词意,可能是我不是真正理解什么叫静态,反正这个规则跟
中
国话的 “静态”没有半毛钱关系。 我们先说一种场景,我们在编写应用...
Makefile
入门三、生成可执行
文件
且每个cpp对应一个.o
文件
文章目录一、了解gcc下生成,o和可执行
文件
二、%.o:%.c作用三、例子 一、了解gcc下生成,o和可执行
文件
...汇编就是生成.o
文件
,gcc下命令为 gcc -c test.s -o test.o #.s为编译出来的
文件
gcc test.o -o test 或者直...
Makefile
--如何将当前
文件
下的所有*.cpp
文件
与*.c
文件
全部生成相应的可执行
文件
Makefile
--如何将当前
文件
下的所有*.cpp
文件
与*.c
文件
全部生成相应的可执行
文件
Linux/Unix社区
23,125
社区成员
74,509
社区内容
发帖
与我相关
我的任务
Linux/Unix社区
Linux/Unix社区 应用程序开发区
复制链接
扫一扫
分享
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章