📄 ch08_14.htm
字号:
<html><head><title>B::CC (Perl in a Nutshell, 2nd Edition)</title><link rel="stylesheet" type="text/css" href="../style/style1.css" /><meta name="DC.Creator" content="Stephen Spainhour" /><meta name="DC.Format" content="text/xml" scheme="MIME" /><meta name="DC.Language" content="en-US" /><meta name="DC.Publisher" content="O'Reilly & Associates, Inc." /><meta name="DC.Source" scheme="ISBN" content="0596002416L" /><meta name="DC.Subject.Keyword" content="stuff" /><meta name="DC.Title" content="Perl in a Nutshell, 2nd Edition" /><meta name="DC.Type" content="Text.Monograph" /></head><body bgcolor="#ffffff"><img src="gifs/smbanner.gif" usemap="#banner-map" border="0" alt="Book Home" /><map name="banner-map"><area shape="rect" coords="1,-2,616,66" href="index.htm" alt="Java and XSLT" /><area shape="rect" coords="629,-11,726,25" href="jobjects/fsearch.htm" alt="Search this book" /></map><div class="navbar"><table width="684" border="0"><tr><td align="left" valign="top" width="228"><a href="ch08_13.htm"><img src="../gifs/txtpreva.gif" alt="Previous" border="0" /></a></td><td align="center" valign="top" width="228" /><td align="right" valign="top" width="228"><a href="ch08_15.htm"><img src="../gifs/txtnexta.gif" alt="Next" border="0" /></a></td></tr></table></div><h2 class="sect1">8.14. B::CC</h2><p><a name="INDEX-1291" />The CC backend for the Perl compiler.Generates optimized C source code that corresponds to yourprogram's flow. The initial version included in Perl5.005 actually includes few optimizations, but this will change.Programs compiled with this backend may start up and execute slightlyfaster. Invoke as:</p><blockquote><pre class="code">perl -MO=C[,<em class="replaceable"><tt>options</em><em class="emphasis">]</em> <em class="replaceable">program</tt></em></pre></blockquote><p><em class="replaceable"><tt>program</tt></em> is the name of the Perl script tocompile. Any non-option arguments are treated as the names of objectsto be saved; the main program is assumed if there are no extraarguments. Possible options are:</p><dl><dt><i> <em class="emphasis">--</em> </i></dt><dd>Forces end of options.</p></dd><dt><i><em class="emphasis">-Dopts</em></i></dt><dd>Debug options, which can be concatenated or specified separately.Possible options are:</p><dl><dt><b><tt class="literal">l</tt></b></dt><dd>Outputs the filename and line number of each original line of Perlcode as it is processed</p></dd><dt><b><tt class="literal">O</tt></b></dt><dd>Outputs each OP as it is compiled</p></dd><dt><b><tt class="literal">p</tt></b></dt><dd>Outputs the contents of the shadow pad of lexicals as it is loadedfor each sub or for the main program</p></dd><dt><b><tt class="literal">q</tt></b></dt><dd>Outputs the name of each fake PP function in the queue asit's about to be processed</p></dd><dt><b><tt class="literal">r</tt></b></dt><dd>Writes debugging output to STDERR instead of as comments in the Coutput</p></dd><dt><b><tt class="literal">s</tt></b></dt><dd>Outputs the contents of the shadow stack at each OP</p></dd><dt><b><tt class="literal">t</tt></b></dt><dd>Outputs timing information of the stages of compilation</p></dd></dl></dd><dt><i><em class="emphasis">-fopt</em></i></dt><dd>Forces individual optimizations on or off. Possible values of<em class="emphasis">opt</em> are:</p><dl><dt><b><tt class="literal">freetmps-each-bblock</tt></b></dt><dd>Runs FREETMPS at the end of each basic block instead of at the end ofeach statement. <tt class="literal">freetmps-each-loop</tt> and<tt class="literal">freetmps-each-bblock</tt> are mutually exclusive.</p></dd><dt><b><tt class="literal">freetmps-each-loop</tt></b></dt><dd>Runs FREETMPS at the end of each loop instead of at the end of eachstatement. <tt class="literal">freetmps-each-loop</tt> and<tt class="literal">freetmps-each-bblock</tt> are mutually exclusive.</p></dd><dt><b><tt class="literal">omit-taint</tt></b></dt><dd>Doesn't generate code for handlingPerl's tainting mechanism.</p></dd></dl></dd><dt><i><em class="emphasis">-mModulename</em></i></dt><dd>Generates source for an XSUB module instead of for an executable.</p></dd><dt><i><em class="emphasis">-ofilename</em></i></dt><dd>Sends output to <em class="emphasis">filename</em> instead of to STDOUT.</p></dd><dt><i><em class="emphasis">-O[</em><em class="replaceable"><tt>n</em><em class="emphasis">]</tt></em></i></dt><dd>Sets optimization level, in which <em class="replaceable"><tt>n</tt></em> is aninteger. <em class="replaceable"><tt>n</tt></em> defaults to<tt class="literal">1</tt>. Currently, <tt class="literal">-O1</tt> sets<tt class="literal">-ffreetmps-each-bblock</tt>, and <tt class="literal">-O2</tt>sets <tt class="literal">-ffreetmps-each-loop</tt>.</p></dd><dt><i><em class="emphasis">-uPackname</em></i></dt><dd>Forces apparently unused subroutines from package<em class="emphasis">Packname</em> to be compiled, permitting programs touse <tt class="literal">eval "foo( )"</tt> even if subroutine<tt class="literal">foo</tt> isn't seen to be used atcompile time. You can specify multiple <em class="emphasis">-u</em>options.</p></dd><dt><i><em class="emphasis">-v</em></i></dt><dd>Compiles verbosely.</p></dd></dl><hr width="684" align="left" /><div class="navbar"><table width="684" border="0"><tr><td align="left" valign="top" width="228"><a href="ch08_13.htm"><img src="../gifs/txtpreva.gif" alt="Previous" border="0" /></a></td><td align="center" valign="top" width="228"><a href="index.htm"><img src="../gifs/txthome.gif" alt="Home" border="0" /></a></td><td align="right" valign="top" width="228"><a href="ch08_15.htm"><img src="../gifs/txtnexta.gif" alt="Next" border="0" /></a></td></tr><tr><td align="left" valign="top" width="228">8.13. B::C</td><td align="center" valign="top" width="228"><a href="index/index.htm"><img src="../gifs/index.gif" alt="Book Index" border="0" /></a></td><td align="right" valign="top" width="228">8.15. B::Concise</td></tr></table></div><hr width="684" align="left" /><img src="../gifs/navbar.gif" usemap="#library-map" border="0" alt="Library Navigation Links" /><p><p><font size="-1"><a href="copyrght.htm">Copyright © 2002</a> O'Reilly & Associates. All rights reserved.</font></p><map name="library-map"><area shape="rect" coords="1,0,85,94" href="../index.htm"><area shape="rect" coords="86,1,178,103" href="../lwp/index.htm"><area shape="rect" coords="180,0,265,103" href="../lperl/index.htm"><area shape="rect" coords="267,0,353,105" href="../perlnut/index.htm"><area shape="rect" coords="354,1,446,115" href="../prog/index.htm"><area shape="rect" coords="448,0,526,132" href="../tk/index.htm"><area shape="rect" coords="528,1,615,119" href="../cookbook/index.htm"><area shape="rect" coords="617,0,690,135" href="../pxml/index.htm"></map></body></html>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -