{"id":207,"date":"2017-11-16T17:11:16","date_gmt":"2017-11-16T09:11:16","guid":{"rendered":"https:\/\/damogame.cn\/?p=207"},"modified":"2017-11-16T17:11:16","modified_gmt":"2017-11-16T09:11:16","slug":"makefile%e9%81%8d%e5%8e%86%e7%bc%96%e8%af%91%e6%96%87%e4%bb%b6%e5%a4%b9%e4%b8%8b%e6%89%80%e6%9c%89-c%e6%96%87%e4%bb%b6","status":"publish","type":"post","link":"https:\/\/i007.cc\/wordpress\/archives\/207","title":{"rendered":"Makefile\u904d\u5386\u7f16\u8bd1\u6587\u4ef6\u5939\u4e0b\u6240\u6709.c\u6587\u4ef6\u00a0\u00a0"},"content":{"rendered":"<div class=\"multicntwrap\">\n<div class=\"multicnt\">\n<p class=\"tdep clearfix nbw-act fc06\"><span class=\"pleft\"><span class=\"blogsep\">2013-03-22 00:06:51<\/span><span class=\"blogsep\">|\u00a0\u00a0\u5206\u7c7b\uff1a<\/span>\u00a0<a class=\"fc03 m2a\" title=\"linux\" href=\"http:\/\/wdtxslqnn.blog.163.com\/blog\/#m=0&amp;t=1&amp;c=fks_084064084095088074082083094095080082083071082082094070\">linux<\/a><\/span><span class=\"pright fc07 ztag\"><span class=\"blogsep\">|<\/span><span id=\"$_spanReport\" class=\"fc03 m2a\">\u4e3e\u62a5<\/span><\/span><span class=\"pright fc07 ztag\"><span class=\"blogsep\">|<\/span><span id=\"$_fontswitch\" class=\"zihao fc03\">\u5b57\u53f7<\/span><\/span><span id=\"$_blog_subscribe\" class=\"pright pnt fc03\"><span class=\"iblock icn0 icn0-919\">\u00a0<\/span><a class=\"m2a\">\u8ba2\u9605<\/a><\/span><\/p>\n<\/div>\n<div class=\"m-shareAndDownLoad\">\n<div class=\"share-wrap pleft\"><span id=\"$_shareBtn_lofter2\" class=\"shareitm lofter f-bkicons\" title=\"\u5206\u4eab\u5230LOFTER\">\u00a0<\/span><span id=\"$_shareBtn_sinaweibo2\" class=\"shareitm sinawb f-bkicons\" title=\"\u5206\u4eab\u5230\u65b0\u6d6a\u5fae\u535a\">\u00a0<\/span><span id=\"$_shareBtn_qq2\" class=\"shareitm qqzone f-bkicons\" title=\"\u5206\u4eab\u5230QQ\u7a7a\u95f4\">\u00a0<\/span><span id=\"$_shareBtn_qqweibo2\" class=\"shareitm qqweibo f-bkicons\" title=\"\u5206\u4eab\u5230\u817e\u8baf\u5fae\u535a\">\u00a0<\/span><\/p>\n<div id=\"$_shareBtn_weixin2\" class=\"shareitm weixin f-bkicons\" title=\"\u5206\u4eab\u5230\u5fae\u4fe1\">\n<div class=\"code2dimlayer fc06\"><img decoding=\"async\" src=\"http:\/\/blog.163.com\/bitMaxImageGen.do?url=http:\/\/wdtxslqnn.blog.163.com\/blog\/static\/4424648520132220651511&amp;w=100&amp;h=100&amp;act=qbbkfxtj_20150420_05\" \/><\/p>\n<div class=\"tips\"><\/div>\n<\/div>\n<\/div>\n<div id=\"$_shareBtn_yixin2\" class=\"shareitm yixin f-bkicons\" title=\"\u5206\u4eab\u5230\u6613\u4fe1\">\n<div class=\"code2dimlayer fc06\"><img decoding=\"async\" src=\"http:\/\/blog.163.com\/bitMaxImageGen.do?url=http:\/\/wdtxslqnn.blog.163.com\/blog\/static\/4424648520132220651511&amp;w=100&amp;h=100&amp;act=qbbkfxtj_20150420_06\" \/><\/p>\n<div class=\"tips\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<p><a class=\"pright fc03 noul\" href=\"http:\/\/www.lofter.com\/app?act=qbbkrzydb_20150408_01\" target=\"_blank\" rel=\"noopener\">\u00a0\u00a0\u4e0b\u8f7dLOFTER<\/a><a class=\"pright fc03 noul\" href=\"http:\/\/yxp.163.com\/\" target=\"_blank\" rel=\"noopener\">\u6211\u7684\u7167\u7247\u4e66\u00a0\u00a0|<\/a><\/div>\n<\/div>\n<div><\/div>\n<div class=\"nbw-blog-start\"><\/div>\n<div class=\"bct fc05 fc11 nbw-blog ztag\">\n<ol start=\"1\">\n<li>TARGET:=test<\/li>\n<li>CC:=gcc<\/li>\n<li>FILES=`ls *.c`<\/li>\n<li><\/li>\n<li>all: $(TARGET)<\/li>\n<li><\/li>\n<li>$(TARGET): *.o<\/li>\n<li>$(CC) -o $@ $^<\/li>\n<li><\/li>\n<li>clean:<\/li>\n<li>-rm $(TARGET) *.o<\/li>\n<li><\/li>\n<li>define compile_c_file<\/li>\n<li>@for file in $(FILES); do \\<\/li>\n<li>( echo &#8220;$(CC) -c $$file&#8221; &amp;&amp; $(CC) -c $$file ) \\<\/li>\n<li>done;<\/li>\n<li>endef<\/li>\n<li><\/li>\n<li>%.o: %.c<\/li>\n<li>$(call compile_c_file)<\/li>\n<\/ol>\n<div><span style=\"color: #5c5c5c; font-family: Consolas, monospace;\">\u00a0<\/span><\/div>\n<div><span style=\"color: #5c5c5c; font-family: Consolas, monospace;\">\u00a0<\/span><\/div>\n<p><wbr \/><a href=\"http:\/\/blog.csdn.net\/force_eagle\/article\/details\/2629030\" rel=\"nofollow\"><b>\u5236\u4f5c\u4e00\u4e2a\u904d\u5386\u5f53\u524d\u5b50\u76ee\u5f55\u7684Makefile<\/b><\/a><\/p>\n<div>\n<p align=\"left\">\u8981\u5bf9\u5b50\u76ee\u5f55\u6267\u884c<span lang=\"EN-US\">make<\/span>\uff0c\u9700\u8981\u5728\u5f53\u524d\u76ee\u5f55\u5236\u4f5c\u4e00\u4e2a<span lang=\"EN-US\">Makefile<\/span>\uff0c\u904d\u5386\u6240\u6709\u5b50\u76ee\u5f55\u7684<span lang=\"EN-US\">Makefile<\/span>\uff0c\u5e76\u8fd0\u884c\u76f8\u5e94\u7684<span lang=\"EN-US\">make target.\u00a0<\/span>\u4ee5\u4e0b\u662f\u6211\u7528\u6765\u7f16\u8bd1\u5185\u6838\u6a21\u5757\u7684\u4e00\u4e2a<span lang=\"EN-US\">Makefile<\/span><\/p>\n<p align=\"left\"><span lang=\"EN-US\">#<\/span><\/p>\n<p align=\"left\"><span lang=\"EN-US\"># Reference\u00a0<\/span><span lang=\"EN-US\"><a href=\"http:\/\/www.gnu.org\/software\/make\/manual\/make.html\" rel=\"nofollow\">http:\/\/www.gnu.org\/software\/make\/manual\/make.html<\/a><\/span><\/p>\n<p align=\"left\"><span lang=\"EN-US\">#<\/span><\/p>\n<p align=\"left\"><span lang=\"EN-US\">#\u00a0<\/span>\u9700\u8981\u6392\u9664\u7684\u76ee\u5f55<\/p>\n<p align=\"left\"><span lang=\"EN-US\">exclude_dirs := include bin<\/span><\/p>\n<p align=\"left\"><span lang=\"EN-US\">#\u00a0<\/span>\u53d6\u5f97\u5f53\u5e74\u5b50\u76ee\u5f55\u6df1\u5ea6\u4e3a<span lang=\"EN-US\">1<\/span>\u7684\u6240\u6709\u76ee\u5f55\u540d\u79f0<\/p>\n<p align=\"left\"><span lang=\"EN-US\">dirs := $(shell find . -maxdepth 1 -type d)<\/span><\/p>\n<p align=\"left\"><span lang=\"EN-US\">dirs := $(basename $(patsubst .\/%,%,$(dirs)))<\/span><\/p>\n<p align=\"left\"><span lang=\"EN-US\">dirs := $(filter-out $(exclude_dirs),$(dirs))<\/span><\/p>\n<p align=\"left\"><span lang=\"EN-US\">#\u00a0<\/span>\u907f\u514d<span lang=\"EN-US\">clean<\/span>\u5b50\u76ee\u5f55\u64cd\u4f5c\u540c\u540d\uff0c\u52a0\u4e0a<span lang=\"EN-US\">_clean_<\/span>\u524d\u7f00<\/p>\n<p align=\"left\"><span lang=\"EN-US\">SUBDIRS := $(dirs)<\/span><\/p>\n<p align=\"left\"><span lang=\"EN-US\">clean_dirs := $(addprefix _clean_,$(SUBDIRS) )<\/span><\/p>\n<p align=\"left\"><span lang=\"EN-US\">#<\/span><\/p>\n<p align=\"left\"><span lang=\"EN-US\">.PHONY: subdirs $(SUBDIRS) clean<\/span><\/p>\n<p align=\"left\"><span lang=\"EN-US\">#\u00a0<\/span>\u6267\u884c\u9ed8\u8ba4<span lang=\"EN-US\">make target<\/span><\/p>\n<p align=\"left\"><span lang=\"EN-US\">$(SUBDIRS): \u00a0\u00a0\u00a0<\/span><\/p>\n<p align=\"left\"><span lang=\"EN-US\">$(MAKE) -C $@<\/span><\/p>\n<p align=\"left\"><span lang=\"EN-US\">subdirs: $(SUBDIRS)<\/span><\/p>\n<p align=\"left\"><span lang=\"EN-US\">#\u00a0<\/span>\u6267\u884c<span lang=\"EN-US\">clean<\/span><\/p>\n<p align=\"left\"><span lang=\"EN-US\">$(clean_dirs): \u00a0\u00a0\u00a0<\/span><\/p>\n<p align=\"left\"><span lang=\"EN-US\">$(MAKE) -C $(patsubst _clean_%,%,$@) clean<\/span><\/p>\n<p align=\"left\"><span lang=\"EN-US\">clean: $(clean_dirs) \u00a0\u00a0\u00a0<\/span><\/p>\n<p align=\"left\"><span lang=\"EN-US\">@find . \/ \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><\/p>\n<p align=\"left\"><span lang=\"EN-US\">\/( -name &#8216;*.[oas]&#8217; -o -name &#8216;*.ko&#8217; -o -name &#8216;.*.cmd&#8217; \/<\/span><\/p>\n<p align=\"left\"><span lang=\"EN-US\">-o -name &#8216;.*.d&#8217; -o -name &#8216;.*.tmp&#8217; -o -name &#8216;*.mod.c&#8217; \/<\/span><\/p>\n<p align=\"left\"><span lang=\"EN-US\">-o -name &#8216;*.symtypes&#8217; \/) \/<\/span><\/p>\n<p align=\"left\"><span lang=\"EN-US\">-type f -print | xargs rm -f<\/span><\/p>\n<\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>2013-03-22 00:06:51|<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"colormag_page_container_layout":"default_layout","colormag_page_sidebar_layout":"default_layout","footnotes":""},"categories":[],"tags":[118],"class_list":["post-207","post","type-post","status-publish","format-standard","hentry","tag-02-"],"_links":{"self":[{"href":"https:\/\/i007.cc\/wordpress\/wp-json\/wp\/v2\/posts\/207","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/i007.cc\/wordpress\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/i007.cc\/wordpress\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/i007.cc\/wordpress\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/i007.cc\/wordpress\/wp-json\/wp\/v2\/comments?post=207"}],"version-history":[{"count":0,"href":"https:\/\/i007.cc\/wordpress\/wp-json\/wp\/v2\/posts\/207\/revisions"}],"wp:attachment":[{"href":"https:\/\/i007.cc\/wordpress\/wp-json\/wp\/v2\/media?parent=207"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/i007.cc\/wordpress\/wp-json\/wp\/v2\/categories?post=207"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/i007.cc\/wordpress\/wp-json\/wp\/v2\/tags?post=207"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}