⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 perlos2.1

📁 视频监控网络部分的协议ddns,的模块的实现代码,请大家大胆指正.
💻 1
📖 第 1 页 / 共 5 页
字号:
.Vb 1\&  gnupatch \-p0 < os2\ediff.configure.Ve.PPYou may also need to apply the patches supplied with the binarydistribution of perl.  It also makes sense to look on theperl5\-porters mailing list for the latest OS/2\-related patches (see<http://www.xray.mpe.mpg.de/mailing\-lists/perl5\-porters/>).  Suchpatches usually contain strings \f(CW\*(C`/os2/\*(C'\fR and \f(CW\*(C`patch\*(C'\fR, so it makessense looking for these strings..Sh "Hand-editing".IX Subsection "Hand-editing"You may look into the file \fI./hints/os2.sh\fR and correct anythingwrong you find there. I do not expect it is needed anywhere..Sh "Making".IX Subsection "Making".Vb 1\&  sh Configure \-des \-D prefix=f:/perllib.Ve.PP\&\f(CW\*(C`prefix\*(C'\fR means: where to install the resulting perl library. Givingcorrect prefix you may avoid the need to specify \f(CW\*(C`PERLLIB_PREFIX\*(C'\fR,see \*(L"\s-1PERLLIB_PREFIX\s0\*(R"..PP\&\fIIgnore the message about missing \f(CI\*(C`ln\*(C'\fI, and about \f(CI\*(C`\-c\*(C'\fI option totr\fR. The latter is most probably already fixed, if you see it and can tracewhere the latter spurious warning comes from, please inform me..PPNow.PP.Vb 1\&  make.Ve.PPAt some moment the built may die, reporting a \fIversion mismatch\fR or\&\fIunable to run \fIperl\fI\fR.  This means that you do not have \fI.\fR inyour \s-1LIBPATH\s0, so \fIperl.exe\fR cannot find the needed \fIperl67B2.dll\fR (treatthese hex digits as line noise).  After this is fixed the buildshould finish without a lot of fuss..Sh "Testing".IX Subsection "Testing"Now run.PP.Vb 1\&  make test.Ve.PPAll tests should succeed (with some of them skipped).  If you have thesame version of Perl installed, it is crucial that you have \f(CW\*(C`.\*(C'\fR earlyin your \s-1LIBPATH\s0 (or in \s-1BEGINLIBPATH\s0), otherwise your tests will mostprobably test the wrong version of Perl..PPSome tests may generate extra messages similar to.ie n .IP "A lot of ""bad free""" 4.el .IP "A lot of \f(CWbad free\fR" 4.IX Item "A lot of bad free"in database tests related to Berkeley \s-1DB\s0. \fIThis should be fixed already.\fRIf it persists, you may disable this warnings, see \*(L"\s-1PERL_BADFREE\s0\*(R"..IP "Process terminated by \s-1SIGTERM/SIGINT\s0" 4.IX Item "Process terminated by SIGTERM/SIGINT"This is a standard message issued by \s-1OS/2\s0 applications. *nixapplications die in silence. It is considered to be a feature. One caneasily disable this by appropriate sighandlers..SpHowever the test engine bleeds these message to screen in unexpectedmoments. Two messages of this kind \fIshould\fR be present duringtesting..PPTo get finer test reports, call.PP.Vb 1\&  perl t/harness.Ve.PPThe report with \fIio/pipe.t\fR failing may look like this:.PP.Vb 5\&  Failed Test  Status Wstat Total Fail  Failed  List of failed\&  \-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\&  io/pipe.t                    12    1   8.33%  9\&  7 tests skipped, plus 56 subtests skipped.\&  Failed 1/195 test scripts, 99.49% okay. 1/6542 subtests failed, 99.98% okay..Ve.PPThe reasons for most important skipped tests are:.IP "\fIop/fs.t\fR" 8.IX Item "op/fs.t".RS 8.PD 0.IP "18" 4.IX Item "18".PDChecks \f(CW\*(C`atime\*(C'\fR and \f(CW\*(C`mtime\*(C'\fR of \f(CW\*(C`stat()\*(C'\fR \- unfortunately, \s-1HPFS\s0provides only 2sec time granularity (for compatibility with \s-1FAT\s0?)..IP "25" 4.IX Item "25"Checks \f(CW\*(C`truncate()\*(C'\fR on a filehandle just opened for write \- I do notknow why this should or should not work..RE.RS 8.RE.IP "\fIop/stat.t\fR" 8.IX Item "op/stat.t"Checks \f(CW\*(C`stat()\*(C'\fR. Tests:.RS 8.IP "4" 4.IX Item "4"Checks \f(CW\*(C`atime\*(C'\fR and \f(CW\*(C`mtime\*(C'\fR of \f(CW\*(C`stat()\*(C'\fR \- unfortunately, \s-1HPFS\s0provides only 2sec time granularity (for compatibility with \s-1FAT\s0?)..RE.RS 8.RE.Sh "Installing the built perl".IX Subsection "Installing the built perl"If you haven't yet moved \f(CW\*(C`perl*.dll\*(C'\fR onto \s-1LIBPATH\s0, do it now..PPRun.PP.Vb 1\&  make install.Ve.PPIt would put the generated files into needed locations. Manually put\&\fIperl.exe\fR, \fIperl_\|_.exe\fR and \fIperl_\|_\|_.exe\fR to a location on your\&\s-1PATH\s0, \fIperl.dll\fR to a location on your \s-1LIBPATH\s0..PPRun.PP.Vb 1\&  make installcmd INSTALLCMDDIR=d:/ir/on/path.Ve.PPto convert perl utilities to \fI.cmd\fR files and put them on\&\s-1PATH\s0. You need to put \fI.EXE\fR\-utilities on path manually. They areinstalled in \f(CW\*(C`$prefix/bin\*(C'\fR, here \f(CW$prefix\fR is what you gave to\&\fIConfigure\fR, see Making..PPIf you use \f(CW\*(C`man\*(C'\fR, either move the installed \fI*/man/\fR directories toyour \f(CW\*(C`MANPATH\*(C'\fR, or modify \f(CW\*(C`MANPATH\*(C'\fR to match the location.  (Onecould have avoided this by providing a correct \f(CW\*(C`manpath\*(C'\fR option to\&\fI./Configure\fR, or editing \fI./config.sh\fR between configuring andmaking steps.).ie n .Sh """a.out""\-style build".el .Sh "\f(CWa.out\fP\-style build".IX Subsection "a.out-style build"Proceed as above, but make \fIperl_.exe\fR (see \*(L"perl_.exe\*(R") by.PP.Vb 1\&  make perl_.Ve.PPtest and install by.PP.Vb 2\&  make aout_test\&  make aout_install.Ve.PPManually put \fIperl_.exe\fR to a location on your \s-1PATH\s0..PP\&\fBNote.\fR The build process for \f(CW\*(C`perl_\*(C'\fR \fIdoes not know\fR about all thedependencies, so you should make sure that anything is up-to-date,say, by doing.PP.Vb 1\&  make perl_dll.Ve.PPfirst..SH "Building a binary distribution".IX Header "Building a binary distribution"[This section provides a short overview only...].PPBuilding should proceed differently depending on whether the version of perlyou install is already present and used on your system, or is a new versionnot yet used.  The description below assumes that the version is new, soinstalling its DLLs and \fI.pm\fR files will not disrupt the operation of yoursystem even if some intermediate steps are not yet fully working..PPThe other cases require a little bit more convoluted procedures.  Below Isuppose that the current version of Perl is \f(CW5.8.2\fR, so the executables arenamed accordingly..IP "1." 4Fully build and test the Perl distribution.  Make sure that no tests arefailing with \f(CW\*(C`test\*(C'\fR and \f(CW\*(C`aout_test\*(C'\fR targets; fix the bugs in Perl andthe Perl test suite detected by these tests.  Make sure that \f(CW\*(C`all_test\*(C'\fRmake target runs as clean as possible.  Check that \f(CW\*(C`os2/perlrexx.cmd\*(C'\fRruns fine..IP "2." 4Fully install Perl, including \f(CW\*(C`installcmd\*(C'\fR target.  Copy the generated DLLsto \f(CW\*(C`LIBPATH\*(C'\fR; copy the numbered Perl executables (as in \fIperl5.8.2.exe\fR)to \f(CW\*(C`PATH\*(C'\fR; copy \f(CW\*(C`perl_.exe\*(C'\fR to \f(CW\*(C`PATH\*(C'\fR as \f(CW\*(C`perl_5.8.2.exe\*(C'\fR.  Think whetheryou need backward-compatibility DLLs.  In most cases you do not need to installthem yet; but sometime this may simplify the following steps..IP "3." 4Make sure that \f(CW\*(C`CPAN.pm\*(C'\fR can download files from \s-1CPAN\s0.  If not, you may needto manually install \f(CW\*(C`Net::FTP\*(C'\fR..IP "4." 4Install the bundle \f(CW\*(C`Bundle::OS2_default\*(C'\fR.Sp.Vb 1\&  perl5.8.2 \-MCPAN \-e "install Bundle::OS2_default" < nul |& tee 00cpan_i_1.Ve.SpThis may take a couple of hours on 1GHz processor (when run the first time).And this should not be necessarily a smooth procedure.  Some modules may notspecify required dependencies, so one may need to repeat this procedure severaltimes until the results stabilize..Sp.Vb 2\&  perl5.8.2 \-MCPAN \-e "install Bundle::OS2_default" < nul |& tee 00cpan_i_2\&  perl5.8.2 \-MCPAN \-e "install Bundle::OS2_default" < nul |& tee 00cpan_i_3.Ve.SpEven after they stabilize, some tests may fail..SpFix as many discovered bugs as possible.  Document all the bugs which are notfixed, and all the failures with unknown reasons.  Inspect the produced logs\&\fI00cpan_i_1\fR to find suspiciously skipped tests, and other fishy events..SpKeep in mind that \fIinstallation\fR of some modules may fail too: for example,the DLLs to update may be already loaded by \fI\s-1CPAN\s0.pm\fR.  Inspect the \f(CW\*(C`install\*(C'\fRlogs (in the example above \fI00cpan_i_1\fR etc) for errors, and install thingsmanually, as in.Sp.Vb 2\&  cd $CPANHOME/.cpan/build/Digest\-MD5\-2.31\&  make install.Ve.SpSome distributions may fail some tests, but you may want to install themanyway (as above, or via \f(CW\*(C`force install\*(C'\fR command of \f(CW\*(C`CPAN.pm\*(C'\fR shell-mode)..SpSince this procedure may take quite a long time to complete, it makes senseto \*(L"freeze\*(R" your \s-1CPAN\s0 configuration by disabling periodic updates of thelocal copy of \s-1CPAN\s0 index: set \f(CW\*(C`index_expire\*(C'\fR to some big value (I use 365),then save the settings.Sp.Vb 2\&  CPAN> o conf index_expire 365\&  CPAN> o conf commit.Ve.SpReset back to the default value \f(CW1\fR when you are finished..IP "5." 4When satisfied with the results, rerun the \f(CW\*(C`installcmd\*(C'\fR target.  Now youcan copy \f(CW\*(C`perl5.8.2.exe\*(C'\fR to \f(CW\*(C`perl.exe\*(C'\fR, and install the other OMF-buildexecutables: \f(CW\*(C`perl_\|_.exe\*(C'\fR etc.  They are ready to be used..IP "6." 4Change to the \f(CW\*(C`./pod\*(C'\fR directory of the build tree, download the Perl logo\&\fICamelGrayBig.BMP\fR, and run.Sp.Vb 2\&  ( perl2ipf > perl.ipf ) |& tee 00ipf\&  ipfc /INF perl.ipf |& tee 00inf.Ve.SpThis produces the Perl docs online book \f(CW\*(C`perl.INF\*(C'\fR.  Install in on\&\f(CW\*(C`BOOKSHELF\*(C'\fR path..IP "7." 4Now is the time to build statically linked executable \fIperl_.exe\fR whichincludes newly-installed via \f(CW\*(C`Bundle::OS2_default\*(C'\fR modules.  Doing testingvia \f(CW\*(C`CPAN.pm\*(C'\fR is going to be painfully slow, since it statically linksa new executable per \s-1XS\s0 extension..SpHere is a possible workaround: create a toplevel \fIMakefile.PL\fR in\&\fI\f(CI$CPANHOME\fI/.cpan/build/\fR with contents being (compare with \*(L"Makingexecutables with a custom collection of statically loaded extensions\*(R").Sp.Vb 2\&  use ExtUtils::MakeMaker;\&  WriteMakefile NAME => \*(Aqdummy\*(Aq;.Ve.Spexecute this as.Sp.Vb 2\&  perl_5.8.2.exe Makefile.PL <nul |& tee 00aout_c1\&  make \-k all test <nul |& 00aout_t1.Ve.SpAgain, this procedure should not be absolutely smooth.  Some \f(CW\*(C`Makefile.PL\*(C'\fR'sin subdirectories may be buggy, and would not run as \*(L"child\*(R" scripts.  Theinterdependency of modules can strike you; however, since non-XS modulesare already installed, the prerequisites of most modules have a very goodchance to be present..SpIf you discover some glitches, move directories of problematic modules to adifferent location; if these modules are non-XS modules, you may just ignorethem \- they are already installed; the remaining, \s-1XS\s0, modules you need toinstall manually one by one..SpAfter each such removal you need to rerun the \f(CW\*(C`Makefile.PL\*(C'\fR/\f(CW\*(C`make\*(C'\fR process;usually this procedure converges soon.  (But be sure to convert all thenecessary external C libraries from \fI.lib\fR format to \fI.a\fR format: run one of.Sp.Vb 2\&  emxaout foo.lib\&  emximp \-o foo.a foo.lib.Ve.Spwhichever is appropriate.)  Also, make sure that the DLLs for externallibraries are usable with with executables compiled without \f(CW\*(C`\-Zmtd\*(C'\fR options..SpWhen you are sure that only a few subdirectorieslead to failures, you may want to add \f(CW\*(C`\-j4\*(C'\fR option to \f(CW\*(C`make\*(C'\fR to speed upskipping subdirectories with already finished build..SpWhen you are satisfied with the results of tests, install the build C librariesfor extensions:.Sp.Vb 1\&  make install |& tee 00aout_i.Ve.SpNow you can rename the file \fI./perl.exe\fR generated during the last phaseto \fIperl_5.8.2.exe\fR; place it on \f(CW\*(C`PATH\*(C'\fR; if there is an inter-dependencybetween some \s-1XS\s0 modules, you may need to repeat the \f(CW\*(C`test\*(C'\fR/\f(CW\*(C`install\*(C'\fR loopwith this new executable and some excluded modules \- until the procedureconverges..SpNow you have all the necessary \fI.a\fR libraries for these Perl modules in theplaces where Perl builder can find it.  Use the perl builder: change to anempty directory, create a \*(L"dummy\*(R" \fIMakefile.PL\fR again, and run.Sp.Vb 2\&  perl_5.8.2.exe Makefile.PL |& tee 00c\&  make perl                  |& tee 00p

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -