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

📄 module::build::cookbook.3

📁 视频监控网络部分的协议ddns,的模块的实现代码,请大家大胆指正.
💻 3
📖 第 1 页 / 共 2 页
字号:
.\" Automatically generated by Pod::Man 2.16 (Pod::Simple 3.05).\".\" Standard preamble:.\" ========================================================================.de Sh \" Subsection heading.br.if t .Sp.ne 5.PP\fB\\$1\fR.PP...de Sp \" Vertical space (when we can't use .PP).if t .sp .5v.if n .sp...de Vb \" Begin verbatim text.ft CW.nf.ne \\$1...de Ve \" End verbatim text.ft R.fi...\" Set up some character translations and predefined strings.  \*(-- will.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left.\" double quote, and \*(R" will give a right double quote.  \*(C+ will.\" give a nicer C++.  Capital omega is used to do unbreakable dashes and.\" therefore won't be available.  \*(C` and \*(C' expand to `' in nroff,.\" nothing in troff, for use with C<>..tr \(*W-.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'.ie n \{\.    ds -- \(*W-.    ds PI pi.    if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch.    if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\"  diablo 12 pitch.    ds L" "".    ds R" "".    ds C` "".    ds C' ""'br\}.el\{\.    ds -- \|\(em\|.    ds PI \(*p.    ds L" ``.    ds R" '''br\}.\".\" Escape single quotes in literal strings from groff's Unicode transform..ie \n(.g .ds Aq \(aq.el       .ds Aq '.\".\" If the F register is turned on, we'll generate index entries on stderr for.\" titles (.TH), headers (.SH), subsections (.Sh), items (.Ip), and index.\" entries marked with X<> in POD.  Of course, you'll have to process the.\" output yourself in some meaningful fashion..ie \nF \{\.    de IX.    tm Index:\\$1\t\\n%\t"\\$2"...    nr % 0.    rr F.\}.el \{\.    de IX...\}.\".\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2)..\" Fear.  Run.  Save yourself.  No user-serviceable parts..    \" fudge factors for nroff and troff.if n \{\.    ds #H 0.    ds #V .8m.    ds #F .3m.    ds #[ \f1.    ds #] \fP.\}.if t \{\.    ds #H ((1u-(\\\\n(.fu%2u))*.13m).    ds #V .6m.    ds #F 0.    ds #[ \&.    ds #] \&.\}.    \" simple accents for nroff and troff.if n \{\.    ds ' \&.    ds ` \&.    ds ^ \&.    ds , \&.    ds ~ ~.    ds /.\}.if t \{\.    ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u".    ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'.    ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'.    ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'.    ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'.    ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'.\}.    \" troff and (daisy-wheel) nroff accents.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'.ds 8 \h'\*(#H'\(*b\h'-\*(#H'.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#].ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#].ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#].ds ae a\h'-(\w'a'u*4/10)'e.ds Ae A\h'-(\w'A'u*4/10)'E.    \" corrections for vroff.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'.    \" for low resolution devices (crt and lpr).if \n(.H>23 .if \n(.V>19 \\{\.    ds : e.    ds 8 ss.    ds o a.    ds d- d\h'-1'\(ga.    ds D- D\h'-1'\(hy.    ds th \o'bp'.    ds Th \o'LP'.    ds ae ae.    ds Ae AE.\}.rm #[ #] #H #V #F C.\" ========================================================================.\".IX Title "Module::Build::Cookbook 3".TH Module::Build::Cookbook 3 "2007-12-18" "perl v5.10.0" "Perl Programmers Reference Guide".\" For nroff, turn off justification.  Always turn off hyphenation; it makes.\" way too many mistakes in technical documents..if n .ad l.nh.SH "NAME"Module::Build::Cookbook \- Examples of Module::Build Usage.SH "DESCRIPTION".IX Header "DESCRIPTION"\&\f(CW\*(C`Module::Build\*(C'\fR isn't conceptually very complicated, but examples arealways helpful.  The following recipes should help developers and/orinstallers put together the pieces from the other parts of thedocumentation..SH "BASIC RECIPES".IX Header "BASIC RECIPES".Sh "Installing modules that use Module::Build".IX Subsection "Installing modules that use Module::Build"In most cases, you can just issue the following commands:.PP.Vb 4\&  perl Build.PL\&  ./Build\&  ./Build test\&  ./Build install.Ve.PPThere's nothing complicated here \- first you're running a scriptcalled \fIBuild.PL\fR, then you're running a (newly-generated) scriptcalled \fIBuild\fR and passing it various arguments..PPThe exact commands may vary a bit depending on how you invoke perlscripts on your system.  For instance, if you have multiple versionsof perl installed, you can install to one particular perl's librarydirectories like so:.PP.Vb 4\&  /usr/bin/perl5.8.1 Build.PL\&  ./Build\&  ./Build test\&  ./Build install.Ve.PPIf you're on Windows where the current directory is always searchedfirst for scripts, you'll probably do something like this:.PP.Vb 4\&  perl Build.PL\&  Build\&  Build test\&  Build install.Ve.PPOn the old Mac \s-1OS\s0 (version 9 or lower) using MacPerl, you candouble-click on the \fIBuild.PL\fR script to create the \fIBuild\fR script,then double-click on the \fIBuild\fR script to run its \f(CW\*(C`build\*(C'\fR, \f(CW\*(C`test\*(C'\fR,and \f(CW\*(C`install\*(C'\fR actions..PPThe \fIBuild\fR script knows what perl was used to run \fIBuild.PL\fR, soyou don't need to re-invoke the \fIBuild\fR script with the complete perlpath each time.  If you invoke it with the \fIwrong\fR perl path, you'llget a warning or a fatal error..Sh "Modifying Config.pm values".IX Subsection "Modifying Config.pm values"\&\f(CW\*(C`Module::Build\*(C'\fR relies heavily on various values from perl's\&\f(CW\*(C`Config.pm\*(C'\fR to do its work.  For example, default installation pathsare given by \f(CW\*(C`installsitelib\*(C'\fR and \f(CW\*(C`installvendorman3dir\*(C'\fR andfriends, C linker & compiler settings are given by \f(CW\*(C`ld\*(C'\fR,\&\f(CW\*(C`lddlflags\*(C'\fR, \f(CW\*(C`cc\*(C'\fR, \f(CW\*(C`ccflags\*(C'\fR, and so on.  \fIIf you're pretty sureyou know what you're doing\fR, you can tell \f(CW\*(C`Module::Build\*(C'\fR to pretendthere are different values in \fIConfig.pm\fR than what's really there,by passing arguments for the \f(CW\*(C`\-\-config\*(C'\fR parameter on the commandline:.PP.Vb 1\&  perl Build.PL \-\-config cc=gcc \-\-config ld=gcc.Ve.PPInside the \f(CW\*(C`Build.PL\*(C'\fR script the same thing can be accomplished bypassing values for the \f(CW\*(C`config\*(C'\fR parameter to \f(CW\*(C`new()\*(C'\fR:.PP.Vb 6\& my $build = Module::Build\->new\&   (\&    ...\&    config => { cc => \*(Aqgcc\*(Aq, ld => \*(Aqgcc\*(Aq },\&    ...\&   );.Ve.PPIn custom build code, the same thing can be accomplished by callingthe \*(L"config\*(R" in Module::Build method:.PP.Vb 4\& $build\->config( cc => \*(Aqgcc\*(Aq );     # Set\& $build\->config( ld => \*(Aqgcc\*(Aq );     # Set\& ...\& my $linker = $build\->config(\*(Aqld\*(Aq); # Get.Ve.Sh "Installing modules using the programmatic interface".IX Subsection "Installing modules using the programmatic interface"If you need to build, test, and/or install modules from within someother perl code (as opposed to having the user type installationcommands at the shell), you can use the programmatic interface.Create a Module::Build object (or an object of a custom Module::Buildsubclass) and then invoke its \f(CW\*(C`dispatch()\*(C'\fR method to run variousactions..PP.Vb 9\&  my $build = Module::Build\->new\&    (\&     module_name => \*(AqFoo::Bar\*(Aq,\&     license     => \*(Aqperl\*(Aq,\&     requires    => { \*(AqSome::Module\*(Aq   => \*(Aq1.23\*(Aq },\&    );\&  $build\->dispatch(\*(Aqbuild\*(Aq);\&  $build\->dispatch(\*(Aqtest\*(Aq, verbose => 1);\&  $build\->dispatch(\*(Aqinstall\*(Aq);.Ve.PPThe first argument to \f(CW\*(C`dispatch()\*(C'\fR is the name of the action, and anyfollowing arguments are named parameters..PPThis is the interface we use to test Module::Build itself in theregression tests..Sh "Installing to a temporary directory".IX Subsection "Installing to a temporary directory"To create packages for package managers like RedHat's \f(CW\*(C`rpm\*(C'\fR orDebian's \f(CW\*(C`deb\*(C'\fR, you may need to install to a temporary directoryfirst and then create the package from that temporary installation.To do this, specify the \f(CW\*(C`destdir\*(C'\fR parameter to the \f(CW\*(C`install\*(C'\fR action:.PP.Vb 1\&  ./Build install \-\-destdir /tmp/my\-package\-1.003.Ve.PPThis essentially just prepends all the installation paths with the\&\fI/tmp/my\-package\-1.003\fR directory..Sh "Installing to a non-standard directory".IX Subsection "Installing to a non-standard directory"To install to a non-standard directory (for example, if you don't havepermission to install in the system-wide directories), you can use the\&\f(CW\*(C`install_base\*(C'\fR or \f(CW\*(C`prefix\*(C'\fR parameters:.PP.Vb 1\&  ./Build install \-\-install_base /foo/bar.Ve.PPSee \*(L"\s-1INSTALL\s0 \s-1PATHS\s0\*(R" in Module::Build for a much more completediscussion of how installation paths are determined..Sh "Installing in the same location as ExtUtils::MakeMaker".IX Subsection "Installing in the same location as ExtUtils::MakeMaker"With the introduction of \f(CW\*(C`\-\-prefix\*(C'\fR in Module::Build 0.28 and\&\f(CW\*(C`INSTALL_BASE\*(C'\fR in ExtUtils::MakeMaker 6.31 its easy to get them bothto install to the same locations..PPFirst, ensure you have at least version 0.28 of Module::Buildinstalled and 6.31 of ExtUtils::MakeMaker.  Prior versions havediffering (and in some cases quite strange) installation behaviors..PPThe following installation flags are equivalent betweenExtUtils::MakeMaker and Module::Build..PP.Vb 10\&    MakeMaker             Module::Build

⌨️ 快捷键说明

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