perl两个构建系统,Makefile.PL/Build.PL
perl进阶 第12章 创建你自己的发行版
构建系统将我们发布的所有文件合并到实际独立安装的文件中,这些文件在安装时可能需要进行编译,在代码中插入配置信息,或者其他开发者想要实现的一些其他内容,这就叫发行版的构建.
Makefile.PL
ExtUtils::Makemaker
ExtUtils::Makemaker模块基于make构建,这个模块构建的发行版使用一个叫Makefile.PL的文件来控制构建流程.
使用Module::Starter模块来创建发行版:
% module-starter --builder="ExtUtils::Makemaker" --module="Animal"
运行Makefile.PL来创建Makefile文件:
% perl Makefile.PL
运行make
命令构建发行版:
% make
使用test参数,确保在进行任何改动之前,所有测试都是通过的:
% make test
使用disttest参数确保测试依旧可以通过:
% make disttest
使用dist
参数来创建发行版:
% make dist
Build.PL
Module::Build
这是一个纯粹的Perl工具,这个模块生成的发行版都有一个Build.PL文件.
创建基于Module::Build模块的发行版
创建出初始发行版:
% module-starter --mb --module="Animal"
运行Build.PL来创建Build脚本:
% perl Build.PL
通过运行Build脚本来构建发行版:
% ./Build
在做任何关于test参数的操作之前,确保所有的测试都是可以通过的:
% ./Build test
用disttest
参数确保测试依旧可以通过:
% ./Build disttest
用dist
参数创建发行版:
% ./Build dist
perl两个构建系统,Makefile.PL/Build.PL相关推荐
- chromium中的GN构建系统
阅读最新的chromium源码,发现项目的构建系统已经从GYP全面切换到GN了.在软件开发中,经常有人忠告:不要重复造轮子.但谷歌可不管这个,造的轮子一个接一个,谁叫人家牛呢?chromiumi项目为 ...
- Bazel构建系统的使用以及go项目实践案例
文章目录 一.基本概念 1. `Bazel`是做什么的?使用场景 2. 什么是构建系统?种类有哪些 2.1 构建系统作用? 2.2 构建系统的目标? 2.3 为什么选择构建系统?为什么不直接使用编辑器 ...
- Ninja 构建系统
Ninja 构建系统 概述 Ninja([ˈnɪndʒə]忍者)是一个构建系统,与 Make 类似.作为输入,你需要描述将源文件处理为目标文件这一过程所需的命令. Ninja 使用这些命令保持目标处于 ...
- cJSON使用教程(树外构建 out of tree build 概念)(组包概念)
JSON基础:包括组包的概念等 Github:DaveGamble/cJSON https://github.com/DaveGamble/cJSON 文章目录 Github:DaveGamble/c ...
- QEMU 构建系统架构
这份文档旨在帮助开发者理解 QEMU 构建系统的架构.正如使用 GNU autotools 的项目一样,QEMU 构建系统有两个阶段,第一步开发者运行 configure 脚本确定本地构建环境特性,然 ...
- docker容器构建_我如何容器化构建系统
docker容器构建 构建系统由用于从源代码过渡到正在运行的应用程序的工具和过程组成. 这种过渡还涉及将代码的读者从软件开发人员更改为最终用户,无论最终用户是运营方面的同事还是部署系统的同事. 在使用 ...
- android系统构建系统_构建系统简介
android系统构建系统 Jan. 21. 2016 2016年1月21日 Roughly speadking, build in software development is the proce ...
- nixyx —— 一个小巧的项目工程/编译文件生成器(构建系统?)
恩..nixyx确实算不上是一个构建系统. 所谓构建系统,比如GNU的Autotools,那是一套很完整的构建体系,包括了程序的配置,编译和安装三大部分. 类似的软件还有:google的gyp.腾讯的 ...
- 绝世秘籍之GNU构建系统与Autotool概念分析
导读 经常使用Linux的开发人员或者运维人员,可能对configure->make->make install相当熟悉.事实上,这叫GNU构建系统,利用脚本和make程序在特定平台上构建 ...
最新文章
- 企业的失败,是一种必然
- hdu-acm steps FatMouse's Speed
- C++尽量在operater=中处理“自我赋值”
- 最简单的kafka demo案例
- SharePoint 2010 master page 控件介绍(5):其他
- 【英语学习】【科学】【Glencoe Science】【A】Life's Structure and Function目录及术语表
- 技巧:让Eclipse或Flex Builder 支持自动换行。(转)
- VB6里自动提交/自动填表的一种相对通用的方案
- linux内核zfs,ZFS与Linux文件系统的变革
- 第一类丢失更新和第二类丢失更新是什么 区别
- 换一种途径看信息,享受快捷 RSS阅读----willack.liu[原创]
- 随手记--关于K-近邻算法
- 网页设计个人主页代码
- Excel VBA 函数
- 极光 MPush 资料
- Delphi 生成二维码【PaintBox】并保存为本地文件添加至【Image】控件中
- 计算机屏保后无法进入登录界面,Win10锁屏界面无法登录卡在登录状态的应对办法...
- 如何从电脑内转播声音
- vue之使用vue-cli搭建SPA项目
- Taproot升级在即!门限签名技术将给数字钱包带来什么?
热门文章
- 小啊呜产品读书笔记001:《邱岳的产品手记-12》第22讲 产品经理的图文基本功(上):产品文档 23讲产品经理的图文基本功(下):产品图例
- flume分布式日志收集系统操作
- 荣耀折叠屏手机如何超越华为?与三星合作就行
- js 中的 Event Loop 以及 宏任务 与 微任务
- Electron教程(七)结语
- Jmeter怎么实现接口关联?
- 高德地图天气图标符号大全_时间就是金钱我的朋友!高德地图同步上线《魔兽世界》语音包...
- 腾讯云服务器入门使用-连接登录
- 学习大数据可以进入哪些高薪行业?
- django.core.exceptions.ImproperlyConfigured: The included URLconf