- 1、本文档共5页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
Makefile 这玩意在上学时就应该学,可是一直沉浸于 IDE 的诱惑,所谓“死于安乐”,直到现在一把年纪才开始接触这种基础东西。
创建 C 程序
view plain?????
view plain
?
?
?
?
?
?
?
?
?
?
?
?
//////////////////
// file: main.c
//////////////////
#include <stdio.h>
int main()
{
int c = 0;
printf("Tommy: %d\n", c+5);
return 0;
}
view plain?
view plain
?
?
~/code/makefile$ ls
main.c
view plain??~/code/makefile$ make
view plain
?
?
~/code/makefile$ make
make: *** 没有指明目标并且找不到 makefile。 停止。
创建 makefile 文件
view plain???~/code/makefile$ touch makefiletommy@tommy-zheng-ThinkPad-T61:~/code/makefile$
view plain
?
?
?
~/code/makefile$ touch makefile
tommy@tommy-zheng-ThinkPad-T61:~/code/makefile$ ls
main.c
makefile
这时再试试“make”命令:
view plain
view plain
?
?
~/code/makefile$ make
make: *** 无目标。 停止。
加入 target
view plain??# 注释 file: makefiletarget:错误
view plain
?
?
# 注释 file: makefile
target:
view plain??~/code/makefile$ make
view plain
?
?
~/code/makefile$ make
make: 没有什么可以做的为 `target'。
可以看到前面“无目标”的错误已经解决了。
加入命令
view plain???
view plain
?
?
?
# 注释 file: makefile
target:
gcc -o tommy main.c # 注意,最前面是 tab,不是空格!
好了,执行 make 命令:
view plain
view plain
?
?
?
?
~/code/makefile$ make
gcc -o tommy main.c
~/code/makefile$ ls
main.c
makefile
tommy
view plain??~/code/makefile$ ./tommyTommy: 5
view plain
?
?
~/code/makefile$ ./tommy
Tommy: 5
我们的 makefile 写完了!!!
好吧,之前的 makefile 实在是太简单,以至于没什么实际的用途。现在再深入研究下。
Target
view plain?????# 注释 file: makefiletommy:gcc -o tommy main.c
view plain
?
?
?
?
?
# 注释 file: makefile
tommy:
gcc -o tommy main.c # 注意,最前面是 tab,不是空格! dosomething:
echo just for fun.
view plain???
view plain
?
?
?
~/code/makefile$ make dosomething
echo just for fun. just for fun.
可以看到,make 可以用来执行任何一个 target 底下的命令,而这种命令并不局限于 gcc 这种编译的命令。每个 target 用冒号隔开。如果 make 命令没有指定哪个 target,那第一个 target 下的命令会被执行。
Dependencies
make 命令一次只能处理一个 target,但如果我想一次处理多个 target 怎么办?这时可以为一个 target 在冒号后面指定它所依赖的 target。修改下 make file:
view plain
view plain
?
?
?
?
?
?
?
?
?
?
?
# 注释 file: makefile
tommy:
gcc -o tommy main.c # 注意,最前面是 tab,不是空格! dosomething: dofirst dosecond # 先执行另两个 targ
您可能关注的文档
- 《信息技术与初中地理教学深度融合研究》地理课题 .docx
- 《信息检索与利用》实习报告.docx
- 《信息型方程式的书写》学案教学文案.docx
- 《幸福教育的样子》优秀读后感.docx
- 《旋转》全章测试及答案.docx
- 《学会倾听》主题班会.docx
- 《学前儿童美术教育》读后感范文.docx
- 《学前儿童社会教育基础专科试题库及答案.docx
- 《学习的好伙伴》教案1.docx
- 《学习鸭子的协作精神》.docx
- 2023年音箱行业洞察报告及未来五至十年预测分析报告.docx
- 2023年自动车床行业洞察报告及未来五至十年预测分析报告.docx
- 2023年社保代缴行业洞察报告及未来五至十年预测分析报告.docx
- 2023年设计师行业市场突围建议及需求分析报告.docx
- 2023年柔性制造单元(FMC)行业洞察报告及未来五至十年预测分析报告.docx
- 2023年高纯氧化铝行业分析报告及未来五至十年行业发展报告.docx
- 2023年数据策略咨询行业市场突围建议及需求分析报告.docx
- 2023年现场总线计算机通讯模板行业市场需求分析报告及未来五至十年行业预测报告.docx
- 2023年电子装联专用设备行业分析报告及未来五至十年行业发展报告.docx
- 2023年船用动力堆及配套产品行业市场需求分析报告及未来五至十年行业预测报告.docx
文档评论(0)