📄 gnu make 指南.htm
字号:
文件从磁碟 上删除,从而使得 make 重建它。因为 CPPFLAGS 指定了 -MD , 它的 .d 文件也被重新产生。<BR><BR>最后,
'addprefix' 函数把第二个参数列表的每一项前缀上第一 个参数值。<BR><BR>这个 makefile 的那些目的是(这些目的可以传给
make 的命令行 来直接选用):<BR><BR>everything:(预设) 更新主要的可执行程序,并且为每一个 源码文件生成或更新一个
'.d' 文件和一个 '.o' 文件。<BR><BR>deps: 只是为每一个源码程序产生或更新一个 '.d' 文件。<BR><BR>objs:
为每一个源码程序生成或更新 '.d' 文件和目标文件。<BR><BR>clean: 删除所有中介/依靠文件( *.d 和 *.o
)。<BR><BR>veryclean: 做 `clean' 和删除可执行文件。<BR><BR>rebuild: 先做 `veryclean' 然后
`everything' ;既完全重建。<BR><BR>除了预设的 everything 以外,这里头只有 clean , veryclean ,
和 rebuild 对用户是有意义的。<BR><BR>我还没有发现当给出一个源码文件的目录,这个 makefile 会失败的
情况,除非依靠文件被弄乱。如果这种弄乱的情况发生了,只要输入 `make clean' ,所有的目标文件和依靠文件会被删除,问题就应该
被解决了。当然,最好不要把它们弄乱。如果你发现在某种情况下这 个 makefile
文件不能完成它的工作,请告诉我,我会把它整好的。<BR><BR>3
总结<BR>~~~~~~~~~~~~~~~<BR><BR>我希望这篇文章足够详细的解释了多文件项目是怎么运作的,也说明了
怎样安全而合理的使用它。到此,你应该可以轻松的利用 GNU Make 工 具来管理小型的项目,如果你完全理解了后面几个部分的话,这些对于
你来说应该没什么困难。<BR><BR>GNU Make 是一件强大的工具,虽然它主要是用来建立程序,它还有很多
别的用处。如果想要知道更多有关这个工具的知识,它的句法,函数, 和许多别的特点,你应该参看它的参考文件 (info pages, 别的 GNU
工具也一样,看它们的 info pages.
)。<BR><BR>老铁补充<BR><BR>Shell定义的特殊变量<BR>$#:内存位置参数的个数<BR>$$:该shell
script的进程代号(pid)<BR>$!:最后一个后台进程代号<BR>$*:所有位置参数字符串,不限于9个参数<BR>$@:与$*相似,但"$@"的值与"$*"不同<BR>例:若$*=
word1 word2 word3<BR>则"$"=" word1 word2 word3"<BR>"$@"=" word1" "word2"
"word3"<BR>例16.17<BR>$ cat testsym<BR>echo 'no. of positional
parameters"'$#<BR>echo 'process no. of current shell:'$$<BR>ps&<
echo 'process no. of last background shell:'$!<BR>rm
aaa<BR><BR>ld:UNIX连接器(link
editor)<BR>ld是建立可执行程序的最后一个步骤.<BR><BR>编译程序选项<BR>-Ldir:额外加上ld要寻找程序库的目录<BR>-lname:寻找程序库---libname.so或libname.a<BR><BR>文件库(Archive
File)<BR>ar key afile
[files...]<BR>r:将files加入afile或取代afile内的文件,files将被加在afile的最后<BR>v:verboise.若是配合新增<BR><BR>C
Scene 官方网站: <A href="http://cscene.differnet.org/"
target=_blank>http://cscene.differnet.org/</A><BR>C Scene 官方电邮: <A
href="mailto:cscene@mindless.com">cscene@mindless.com</A></DIV>
<DIV>__________________<BR>walker<BR><BR>---------------------------<BR>一分耕耘,一分收获
</DIV>
<DIV align=right><A
href="http://www.gd-linux.org/bbs/newreply.php?do=newreply&p=401"><IMG
alt=回复时引用此帖 src="GNU make 指南.files/quote.gif" border=0></A>
</DIV></TD></TR></TBODY></TABLE>
<DIV class=vbmenu_popup id=postmenu_401_menu style="DISPLAY: none">
<TABLE cellSpacing=1 cellPadding=4 border=0>
<TBODY>
<TR>
<TD class=thead>walker</TD></TR>
<TR>
<TD class=vbmenu_option><A
href="http://www.gd-linux.org/bbs/member.php?userid=6">查看公开信息</A></TD></TR>
<TR>
<TD class=vbmenu_option><A
href="http://www.gd-linux.org/bbs/private.php?do=newpm&userid=6">发送悄悄话给walker</A></TD></TR>
<TR>
<TD class=vbmenu_option><A
href="http://www.gd-linux.org/bbs/sendmessage.php?do=mailmember&u=6">给walker发送Email</A></TD></TR>
<TR>
<TD class=vbmenu_option><A
href="http://www.gd-linux.org/bbs/search.php?do=finduser&userid=6">查找walker发表的所有帖子</A></TD></TR>
<TR>
<TD class=vbmenu_option><A
href="http://www.gd-linux.org/bbs/profile.php?do=addlist&userlist=buddy&u=6">添加
walker 到好友列表</A></TD></TR></TBODY></TABLE></DIV></DIV></DIV></DIV></DIV></DIV>
<DIV align=center>
<DIV class=page style="WIDTH: 100%; TEXT-ALIGN: left">
<DIV
style="PADDING-RIGHT: 25px; PADDING-LEFT: 25px; PADDING-BOTTOM: 0px; PADDING-TOP: 0px">
<TABLE cellSpacing=0 cellPadding=0 width="100%" border=0>
<TBODY>
<TR vAlign=top>
<TD class=smallfont><A
href="http://www.gd-linux.org/bbs/newreply.php?do=newreply&noquote=1&p=401"><IMG
alt=回复 src="GNU make 指南.files/reply.gif"
border=0></A></TD></TR></TBODY></TABLE><BR>
<DIV class=smallfont align=center><STRONG>«</STRONG> <A
href="http://www.gd-linux.org/bbs/showthread.php?t=294&goto=nextoldest">上一主题</A>
| <A
href="http://www.gd-linux.org/bbs/showthread.php?t=294&goto=nextnewest">下一主题</A>
<STRONG>»</STRONG> </DIV><BR><BR>
<DIV class=vbmenu_popup id=threadtools_menu style="DISPLAY: none">
<FORM name=threadadminform action=postings.php method=post>
<TABLE cellSpacing=1 cellPadding=4 border=0>
<TBODY>
<TR>
<TD class=thead>主题工具<A name=goto_threadtools></A></TD></TR>
<TR>
<TD class=vbmenu_option><IMG class=inlineimg alt=显示可打印版本
src="GNU make 指南.files/printer.gif"> <A accessKey=3
href="http://www.gd-linux.org/bbs/printthread.php?t=294">显示可打印版本</A></TD></TR>
<TR>
<TD class=vbmenu_option><IMG class=inlineimg alt=发送本页给好友
src="GNU make 指南.files/sendtofriend.gif"> <A
href="http://www.gd-linux.org/bbs/sendmessage.php?do=sendtofriend&t=294">发送本页给好友</A></TD></TR></TBODY></TABLE></FORM></DIV>
<DIV class=vbmenu_popup id=displaymodes_menu style="DISPLAY: none">
<TABLE cellSpacing=1 cellPadding=4 border=0>
<TBODY>
<TR>
<TD class=thead>显示模式<A name=goto_displaymodes></A></TD></TR>
<TR>
<TD class=vbmenu_option title=nohilite><IMG class=inlineimg alt=平板模式
src="GNU make 指南.files/mode_linear.gif"> <STRONG>平板模式</STRONG></TD></TR>
<TR>
<TD class=vbmenu_option><IMG class=inlineimg alt=混合模式
src="GNU make 指南.files/mode_hybrid.gif"> <A
href="http://www.gd-linux.org/bbs/showthread.php?mode=hybrid&t=294">切换到混合模式</A></TD></TR>
<TR>
<TD class=vbmenu_option><IMG class=inlineimg alt=树形模式
src="GNU make 指南.files/mode_threaded.gif"> <A
href="http://www.gd-linux.org/bbs/showthread.php?p=401&mode=threaded#post401">切换到树形模式</A></TD></TR></TBODY></TABLE></DIV>
<DIV class=vbmenu_popup id=threadsearch_menu style="DISPLAY: none">
<FORM action=search.php method=post>
<TABLE cellSpacing=1 cellPadding=4 border=0>
<TBODY>
<TR>
<TD class=thead>搜索本主题<A name=goto_threadsearch></A></TD></TR>
<TR>
<TD class=vbmenu_option title=nohilite><INPUT type=hidden name=s> <INPUT
type=hidden value=process name=do> <INPUT type=hidden value=1
name=searchthread> <INPUT type=hidden value=1 name=showposts> <INPUT
type=hidden value=294 name=searchthreadid> <INPUT class=bginput
name=query><INPUT class=button type=submit value=执行><BR></TD></TR>
<TR>
<TD class=vbmenu_option><A
href="http://www.gd-linux.org/bbs/search.php?">高级搜索</A></TD></TR></TBODY></TABLE></FORM></DIV>
<DIV class=vbmenu_popup id=threadrating_menu style="DISPLAY: none">
<FORM action=threadrate.php method=post>
<TABLE cellSpacing=1 cellPadding=4 border=0>
<TBODY>
<TR>
<TD class=thead>对此主题评分<A name=goto_threadrating></A></TD></TR>
<TR>
<TD>您已经为此主题评过分</TD></TR></TBODY></TABLE></FORM></DIV>
<TABLE cellSpacing=0 cellPadding=0 width="100%" align=center border=0>
<TBODY>
<TR vAlign=bottom>
<TD class=smallfont align=left>
<TABLE class=tborder cellSpacing=1 cellPadding=6 width=180 border=0>
<THEAD>
<TR>
<TD class=thead><A style="FLOAT: right"
onclick="return toggle_collapse('forumrules')"
href="http://www.gd-linux.org/bbs/showthread.php?t=294#top"><IMG
id=collapseimg_forumrules alt=""
src="GNU make 指南.files/collapse_thead.gif" border=0></A> 发帖规则
</TD></TR></THEAD>
<TBODY id=collapseobj_forumrules>
<TR>
<TD class=alt1 noWrap>
<DIV class=smallfont>
<DIV>你<STRONG>不可以</STRONG>发表新主题</DIV>
<DIV>你<STRONG>不可以</STRONG>回复主题</DIV>
<DIV>你<STRONG>不可以</STRONG>上传附件</DIV>
<DIV>你<STRONG>不可以</STRONG>编辑你的帖子</DIV>
<HR>
<DIV><A href="http://www.gd-linux.org/bbs/misc.php?do=bbcode"
target=_blank>vB 代码</A><STRONG>开启</STRONG></DIV>
<DIV><A href="http://www.gd-linux.org/bbs/misc.php?do=showsmilies"
target=_blank>表情图标</A><STRONG>关闭</STRONG></DIV>
<DIV><A
href="http://www.gd-linux.org/bbs/misc.php?do=bbcode#imgcode"
target=_blank>[IMG]</A>代码<STRONG>开启</STRONG></DIV>
<DIV>HTML代码<STRONG>关闭</STRONG></DIV></DIV></TD></TR></TBODY></TABLE></TD>
<TD class=smallfont align=right>
<TABLE cellSpacing=0 cellPadding=0 border=0>
<TBODY>
<TR>
<TD>
<DIV class=smallfont style="WHITE-SPACE: nowrap; TEXT-ALIGN: left">
<FORM action=forumdisplay.php method=get><INPUT type=hidden name=s>
<INPUT type=hidden name=daysprune> <STRONG>论坛跳转</STRONG><BR><SELECT
onchange=this.form.submit(); name=f> <OPTGROUP label=站点区域>
<OPTION value=-1>请选择</OPTION> <OPTION value=cp>用户控制面板</OPTION>
<OPTION value=pm>悄悄话</OPTION> <OPTION value=subs>订阅</OPTION>
<OPTION value=wol>用户在线状态</OPTION> <OPTION
value=search>搜索论坛</OPTION> <OPTION value=home>首页</OPTION>
<OPTION value=-1>--------------------</OPTION> </OPTGROUP>
<OPTGROUP label=论坛> <OPTION class=fjdpth0 value=3>站务区</OPTION>
<OPTION class=fjdpth1 value=4> 公告区和意见
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -