📄 01_4_11_6.asp.html
字号:
<font size="2">
PerlCC输出内容:</font></td></tr></table><table align=center width=620><tr><td class=a14>
<font size="2">------------------------------------------------------------------------------</font></td></tr></table><table align=center width=620><tr><td class=a14>
<font size="2">
Compiling abc.pl:</font></td></tr></table><table align=center width=620><tr><td class=a14>
<font size="2">-------------------------------------------------------------------------------</font></td></tr></table><table align=center width=620><tr><td class=a14>
<font size="2"> </font>
</td></tr></table><table align=center width=620><tr><td class=a14>
<font size="2">
Making C(abc.pl.c) for abc.pl!</font></td></tr></table><table align=center width=620><tr><td class=a14>
<font size="2">
C:\perl\5.6.0\bin\MSWin32-x86\perl.exe -IC:/perl/5.6.0/lib/MSWin32-x86 -IC:/perl</font></td></tr></table><table align=center width=620><tr><td class=a14>
<font size="2">
/5.6.0/lib -IC:/perl/site/5.6.0/lib/MSWin32-x86 -IC:/perl/site/5.6.0/lib -I. -MB</font></td></tr></table><table align=center width=620><tr><td class=a14>
<font size="2">
::Stash -c abc.pl</font></td></tr></table><table align=center width=620><tr><td class=a14>
<font size="2">
C:\perl\5.6.0\bin\MSWin32-x86\perl.exe -IC:/perl/5.6.0/lib/MSWin32-x86 -IC:/perl</font></td></tr></table><table align=center width=620><tr><td class=a14>
<font size="2">
/5.6.0/lib -IC:/perl/site/5.6.0/lib/MSWin32-x86 -IC:/perl/site/5.6.0/lib -I. -MO</font></td></tr></table><table align=center width=620><tr><td class=a14>
<font size="2">
=C,-l2000,-umain,-uattributes,-uDB,-uWin32 abc.pl</font></td></tr></table><table align=center width=620><tr><td class=a14>
<font size="2">
Starting compile</font></td></tr></table><table align=center width=620><tr><td class=a14>
<font size="2">
Walking tree</font></td></tr></table><table align=center width=620><tr><td class=a14>
<font size="2">
Prescan</font></td></tr></table><table align=center width=620><tr><td class=a14>
<font size="2">
Saving methods</font></td></tr></table><table align=center width=620><tr><td class=a14>
<font size="2">
Bootstrap attributes abc.pl</font></td></tr></table><table align=center width=620><tr><td class=a14>
<font size="2">
Writing output</font></td></tr></table><table align=center width=620><tr><td class=a14>
<font size="2">
Loaded B</font></td></tr></table><table align=center width=620><tr><td class=a14>
<font size="2">
Loaded IO</font></td></tr></table><table align=center width=620><tr><td class=a14>
<font size="2">
Loaded Fcntl</font></td></tr></table><table align=center width=620><tr><td class=a14>
<font size="2">
abc.pl syntax OK</font></td></tr></table><table align=center width=620><tr><td class=a14>
<font size="2">
Compiling C(abc) for abc.pl!</font></td></tr></table><table align=center width=620><tr><td class=a14>
<font size="2">
C:\perl\5.6.0\bin\MSWin32-x86\perl.exe -IC:/perl/5.6.0/lib/MSWin32-x86 -IC:/perl</font></td></tr></table><table align=center width=620><tr><td class=a14>
<font size="2">
/5.6.0/lib -IC:/perl/site/5.6.0/lib/MSWin32-x86 -IC:/perl/site/5.6.0/lib -I. E:\</font></td></tr></table><table align=center width=620><tr><td class=a14>
<font size="2">
DOCUME~1\ADMINI~1\LOCALS~1\Temp/abc.pl.tst</font></td></tr></table><table align=center width=620><tr><td class=a14>
<font size="2">
Couldn't open E:DOCUME~1ADMINI~1ocals~1temp/abc.pl.val</font></td></tr></table><table align=center width=620><tr><td class=a14>
<font size="2">
cl -Od -MD -DNDEBUG -DWIN32 -D_CONSOLE -DNO_STRICT -DPERL_MSVCRT_READFIX -Od -</font></td></tr></table><table align=center width=620><tr><td class=a14>
<font size="2">
MD -DNDEBUG -Ic:\perl\5.6.0\lib\MSWin32-x86/CORE -o abc abc.pl.c /link -nologo</font></td></tr></table><table align=center width=620><tr><td class=a14>
<font size="2">
-nodefaultlib -release -libpath:"c:\perl\5.6.0\lib\MSWin32-x86\CORE" -machine:</font></td></tr></table><table align=center width=620><tr><td class=a14>
<font size="2">
x86 -libpath:c:\perl\5.6.0\lib\MSWin32-x86/CORE c:\perl\5.6.0\lib\MSWin32-x86\CO</font></td></tr></table><table align=center width=620><tr><td class=a14>
<font size="2">
RE\perl56.lib oldnames.lib kernel32.lib user32.lib gdi32.lib winspool.lib com</font></td></tr></table><table align=center width=620><tr><td class=a14>
<font size="2">
dlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib netapi32.lib uuid.lib</font></td></tr></table><table align=center width=620><tr><td class=a14>
<font size="2">
wsock32.lib mpr.lib winmm.lib version.lib odbc32.lib odbccp32.lib msvcrt.lib</font></td></tr></table><table align=center width=620><tr><td class=a14>
<font size="2">
abc.pl.c</font></td></tr></table><table align=center width=620><tr><td class=a14>
然后再输入:abc.exe,如果输出结果与abc.pl一样,那么编译就成功了。这个程序是使用Visual C++的CL.EXE C/C++编译程序编译的。在Unix-Style下是使用CC或者GCC编译的。</td></tr></table><table align=center width=620><tr><td class=a14>
模块编译注意事项:</td></tr></table><table align=center width=620><tr><td class=a14>
目前PerlCC标准编译方式可以支持大多数程序的模块使用,但是我推荐尽量使用内部命令来完成相应任务,诸如IO::Socket模块可以使用socket 内部函数。因为 IO::Socket是无法在PerlCC下面编译成功的,为什么? 大家知道Perl很多的模块是本身Perl的语言和内部函数编写的。但是有一部分包括IO::Socket DBD DBI等这些常用的模块,由于Perl本身内置函数限制,采用了PerlXS接口通过C 程序达到目的的。这些是通过第三方程序达到目的模块是无法成功的编译。所以我建议尽量使用非含有第三方程序的模块编程。有人可能会说了,我使用了DBI DBD来操作数据库,难道让我放弃吗?不,我觉得任何事情都是有它的解决方法,Perl也一样。Perl Bytecode将会解决这一问题(详情情看第4节)。</td></tr></table><table align=center width=620><tr><td class=a14>
编程方式注意事项:我为什么要在开头说OOP 等相关技术以及在本文中提及了OOP的编写?因为PerlCC编译有一定的局限性,如果采用OOP就可以避免这个局限性,而且会更好的发挥,众所周知,OOP是编程发式的有一革命,你迟早都会涉及的,所以早一点总比晚一点好。我们经常编写程序的时候用“require”命令来引用其它Perl程序文件。然而这种方式不是PerlCC不支持,PerlCC当然支持,这个命令,但是问题在于它无法被编译入PerlCC的主程序内,也就是说主程序被编译了,然而外部引用的这个没有被编译,这样会造成很多问题,首先是暴露了原始代码,其次它人可以随意修改,肯能导致很多量(比如密码)被套出,也可以修改程序运行的模式。但是这也是有点,最后一节将会详尽讲述。</td></tr>
<tr><td class=a14>
<p align="right"><a href="http://www.ccw.com.cn/htm/app/aprog/01_4_11_5.asp"><font color="#0000ff">上一讲
>></font></a> <a href="http://www.ccw.com.cn/htm/app/aprog/01_4_12_2.asp"><font color="#0000FF"><< 下一讲</font></a></td></tr>
</table><br>
<table align=center width=620><tr><td align=right>(网页编辑:<a href='mailto:app@ccw.com.cn'>徐向阳</a>)</td></tr></table><br>
<br><table align=center width=620><tr><td class=a14>相关文章</td></tr><tr><td><ul>
<li><a href='http://www.ccw.com.cn/htm/app/aprog/01_4_11_5.asp'>Perl 语言全面编译(二)</a></li>
<li><a href='http://www.ccw.com.cn/htm/app/aprog/01_3_27_4.asp'>Perl 语言全面编译</a></li>
<li><a href='http://www.ccw.com.cn/htm/app/aprog/001228_4.asp'>也谈基于Web的Form多响应技术</a></li>
</ul></td></tr></table>
<table align=center width=620><tr><td align=right>
<form method=post action='/pub/subMail.asp' onsubmit='JavaScript: return chkField(this)'>
<INPUT type='hidden' name='rec' value='10242'>
您的姓名:<INPUT type="text" name=myName size=10>
您朋友的E-mail:<INPUT type="text" name=friendMail size=10>
<INPUT type="submit" value="推荐给好友">
</form>
</td></tr>
<tr><td align=right>
<b>[<a href="javascript:window.close()">关闭窗口</a>]</b>
</td></tr>
</table>
<script language="javascript">function chkField(fmObj)
{if (!fmObj.friendMail.value){
alert("请输入您朋友的E-mail!");
fmObj.friendMail.focus();
return false;
}
return true;
}
</script>
<table align=center width=680>
<tr><td><hr size=1 width=660 color=#f46240></td></tr>
</table><br>
<p align=center>Copyright(C) ccw.com.cn,All rights reserved</p>
<p align=center><b>中国计算机世界出版服务公司版权所有</b></p><!-- This document saved from http://www.ccw.com.cn/htm/app/aprog/01_4_11_6.asp -->
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -