检测编译后的perl脚本是否动态加载模块

2023-12-11

我正在使用 Strawberry Perl 运行 Windows 10。我用PAR::打包机模块来制作我的一些 Perl 脚本的可执行版本。

我发现有些模块例如XML::LibXML,需要安装 Perl 才能运行可执行文件。由于我是为没有 Perl 的用户编译这些文件,这违背了编译的目的。

有什么方法可以在编译之前判断可执行文件是否需要 Perl 安装才能运行?


假设您想知道您的 pp 打包的可执行文件是否可以在未安装 perl 的系统上运行,我是这样做的:

从 sysinternals.com 获取 Process Explorer。
打包您的可执行文件。
运行可执行文件并在 Process Explorer 中检查进程的 Dell
(视图->“显示下部窗格” and 视图->“下部窗格视图”->“DLL”)
如果您看到任何 dll 引用 PAR temp-dir 或系统库以外的路径(这些路径存在于任何 Windows 系统上),请返回,再次打包并使用 pp 的 -l 开关添加这些库。

Example:

pp -e "use XML::LibXML; while(1){sleep 1}"

Running a.exe ...
Process Explorer 显示

libxml2-2_.dll ... C:\Users\user\perl522\c\bin\libxml2-2_.dll

这不会出现在用户系统上......
重新运行pp:

pp -l libxml2-2_.dll -e "use XML::LibXML; while(1){sleep 1}"

这一次,跑步a.exe ...
进程浏览器显示:

libxml2-2_.dll ... C:\Users\user\AppData\Local\Temp\par-xxx\cache-SHA1\libxml2-2_.dll

现在,该进程获取与 pp 捆绑在一起的 lib 并提取到 PAR 缓存目录。

干杯,克里斯

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

检测编译后的perl脚本是否动态加载模块 的相关文章

  • 在后台从 gVim 运行 :make

    我在 Windows 中使用 gVim 来编辑我的代码 主要是 C 我在 gVim 中使用 make 来编译项目 但这是一个阻塞操作 在编译完成之前我无法使用 gVim 我怎样才能异步执行 make 并仍然获得将错误读回 Vim 并跳转到源
  • MIME::Lite - 无法发送邮件 [smtp.gmail.com 不支持 SMTP auth() 命令]

    use MIME Lite use warnings use MIME Base64 use Authen SASL use MIME Lite use MIME Base64 use Authen SASL use warnings us
  • 如何在 perl 中合并两个数组,交替每个数组中的值

    假设我有 2 个如下所示的数组 a1 Vinay Raj harry b1 dude rock 合并后我想要这样的结果 Vinay dude Vinay rock Raj dude Raj rock harry dude harry roc
  • 你能挽救我的负面回顾示例来传达数字吗?

    在 高级正则表达式 一章中掌握 Perl http oreilly com catalog 9780596527242 我有一个损坏的示例 我无法找到一个很好的修复方法 这个例子可能为了自己的利益而试图变得太聪明 但也许有人可以帮我解决它
  • 在 Ubuntu 中执行 .cgi 文件

    我在 Ubuntu 下运行 Apache PHP 当我运行 cgi 文件时 通过http localhost mycgi cgi 浏览器将显示代码而不是运行它 如何让浏览器执行 CGI 文件而不是显示其内容 将这些行添加到您的 apache
  • 如何使用 Perl CGI 脚本提供图像?

    我的 Google fu 让我失望了 如何使用 Perl 提供已生成的图像 Example img src getimage pl getimage pl 里有什么 干得好 usr bin perl w my file inner nav
  • Perl:HTTP::微小删除留下损坏的锚标记

    我编写了一个脚本 该脚本收集从数据库读取的缓冲区内的所有 URL 检查该页面是否仍然存在 并使用 HTTP Tiny 从缓冲区中删除 URL 如果该 URL 无法访问或返回无效 问题是 HTTP Tiny 删除左锚标记 例如此处无效的文本
  • Perl 语言的目标是在运行时生成快速的程序吗?

    最近有朋友告诉我 看 Perl 从来就不是为了快而设计的 真的吗 我能找到的相关信息是来自维基百科 http en wikipedia org wiki Perl Overview 该语言旨在实用 易于使用 高效 完整 而不是美观 微小 优
  • Perl LWP GET 或 POST 到 SNI SSL URL

    我有一个使用 perl LWP 向客户发送数据的系统 他们可以选择 URL 以及是 POST 还是 GET 一位新客户最近抱怨该服务不起作用 他们怀疑这是因为他们的端点使用了 SNI SSL 查看日志 我看到的只是错误消息 证书验证失败 5
  • .NET 属性生成“必须声明主体,因为它未标记为抽象或外部”编译错误

    我有一个 NET 3 5 目标框架 Web 应用程序 我有一些代码看起来像这样 public string LogPath get private set public string ErrorMsg get private set 它给了
  • 所有编程语言都是按顺序读取的吗?

    我似乎无法找到对此的直接答案 使用多个搜索引擎给我的结果非常模糊 或者只回答了一半的问题 那么 详细来说 当您编写一个程序并对其进行编译 解释时 计算机是按时间顺序顺序读取每一行还是默认情况下跳过 Example 使用 C 风格的源代码 因
  • 折叠具有多个字段的行

    我有这个代码 awk seen 1 2 a 1 a 1 a 1 t 2 END for i in a print i a i inputfile 我想折叠具有两个以上字段的行 但始终基于第一个字段作为索引 输入文件 三列制表符分隔 prot
  • 如何在 Perl 中使用原始套接字?

    你怎样才能得到一个rawPerl 中的套接字 那么构建与其一起使用的数据包的最佳方法是什么 与在 C 中执行的操作相同 通过在创建套接字时设置套接字类型 在示例中CPAN http search cpan org rgarcia perl
  • BASH:将数据从平面文件导入模板

    我有一个平面记录文件 每行有 33 行 我需要将此文件格式化为模板中的规格 模板为 DOS 格式 源文件为 NIX 格式 该模板具有必须遵守的特定缩进和间距 我想到了几个选择 BASH 与经典的 nix 工具 sed awk grep 等
  • 如何忽略 perl 中的“证书验证失败”错误?

    我想访问一个无法验证证书的网站 我正在使用 WWW Mechanize 获取请求 那么如何忽略这一点并继续连接到该网站呢 use IO Socket SSL qw use WWW Mechanize qw my mech WWW Mecha
  • 使用 Visual Studio Code 调试 Perl

    我今天刚开始使用 Perl 并安装了活动Perl https en wikipedia org wiki ActivePerl5 24 1 一切都很顺利 我能够创建我的测试程序testPerl pl与简单的print命令并运行它consol
  • 如何在 PHP 中反序列化 Perl Data::Dumper 输出

    我在 Perl 中有一个导出变量的结果 如下字符串 VAR1 guard gt undef work hand gt undef images gt 1 gt mini height gt 150 width gt 150 extensio
  • Scala [2.11.6] 编译 Stackoverflow 错误(似乎对迄今为止发现的建议有抵抗力)

    scala版本 2 11 6 我当然尝试过clean很多次以及update 不确定是否有clean deeper刷新 jar 库 真正奇怪的是 这种情况同时发生在两台机器上 其中一台在没有执行任何特殊操作的情况下恢复了 而另一台仍然没有恢复
  • 无法在 Perl 中找到 DBI.pm 模块

    我使用的是 CentOS 并且已经安装了 Perl 5 20 并且默认情况下存在 Perl 5 10 我正在使用 Perl 5 20 版本来执行 Perl 代码 我尝试使用 DBI 模块并收到此错误 root localhost perl
  • 何时计划 (SELECT) 查询?

    在 PostgreSQL 中 什么时候计划 SELECT 查询 Is it 在报表准备时 或者 在处理 SELECT 开始时 或者 别的东西 我问的原因是 Stackoverflow 上有一个问题 相同的查询 两种不同的方式 性能截然不同

随机推荐

  • 如何在C中读取或捕获Ctrl+某个键或Alt+某个键?

    For example I want to do some thing when some combination of Ctrl key with any other key is pressed or it may be Alt key
  • 忽略 TextField SwiftUI 组合中输入中的左侧空格

    我正在传递给 TextField 发布的变量 TextField First name text state firstName 我想控制估算 如果从左侧输入 则忽略空格 我可以在哪里以及如何做 可以使用代理绑定来完成 如下所示 TextF
  • 在 Mercurial 中指定编辑器

    一般来说 如果我有一个 W 类型的自定义文件 并且想要使用自定义应用程序 编辑器 X 打开 查看它 当我想要编辑 查看该文件时 如何设置 Hg 来调用应用程序 X 具体示例 我使用 TortoiseHg 来跟踪一组文件 这些文件是由自定义应
  • 可以观察到分组和去抖动吗?

    我有一个可观察的对象 它发出一个包含一些参数的对象 在对象中 参数之一 称为optionId 明确标识一个选项 我想消除该发射的所有实例 然而 如果一个新的optionId出现 我想启动一个新的时钟 并开始一个新的反跳 这是我正在寻找的示例
  • 如何在 Swift 中创建自定义 getter 方法?

    我正在尝试使用以下代码为我的属性创建自定义设置方法 var myProperty String get if CONDITION1 return CONDITION1 STRING else if CONDITION2 return CON
  • “adb install”返回错误:协议错误(无状态)

    我已经创建并运行了几个 Android 模拟器 现在我想在它们上安装应用程序 这是我多次尝试的故事 adb s emulator 5562 install xxx apk daemon not running starting it now
  • 标题大写

    我正在尝试编写一种将标题大写的方法 它不应将每个单词都大写 而应仅将大单词大写 如果您愿意的话 有时 它必须将每个单词大写 也许我需要为这些小词添加一个例外 这是 Ruby 教程的一部分 我无法使用 Railstitleize方法 这是我到
  • R - 使用 par() 创建 ggplot 绘图网格 - 未按预期工作[重复]

    这个问题在这里已经有答案了 我有一些数据看起来像这样 Generate example data exampleData lt data frame Month sample 1 5 500 replace T Product sample
  • WPF 和 NotifyPropertyChanged 来自不同的线程

    我对 WPF 非常有经验 但有一件事困扰着我 我正在使用 ReactiveUI 引发 INotifyPropertyChanged 事件 我有两个类似的地方 public UiModel UiModel get return uiModel
  • 使用 Odeint 求解复矩阵微分方程

    我想求解矩阵微分方程 像这个 import numpy as np from scipy integrate import odeint def deriv A t Ab return np dot Ab A Ab np array 0 2
  • 使用c#读取Word文档

    我需要从一个特定的点开始阅读word文档 该关键字取自下拉组合框 关键字类似于 blah blah blah 001 所以 我只需要阅读从该关键字到下一个标题的内容 我用它来逐行读取标题编号 但标题编号不起作用 string headNum
  • C++ 睡眠函数

    我正在尝试执行一个有点准确的睡眠功能 我测量了我的睡眠功能睡了多长时间 并将它们并排放置 下面示例的格式为 预期毫秒 结果毫秒 我尝试了很多选择 但仍然找不到解决方案 以下是我尝试过的路线 Route 1 Sleep
  • 合并子目录中的 git 存储库

    我想将远程 git 存储库合并到我的工作 git 存储库中作为它的子目录 我希望生成的存储库包含两个存储库的合并历史记录 并且合并存储库的每个文件都保留其历史记录 就像在远程存储库中一样 我尝试使用子树策略 如中提到的如何使用子树合并策略
  • 致命错误:c:\wamp\www\drupal2\includes\common.inc 第 551 行超出最大执行时间 30 秒

    当我进入 drupal 6 中的管理选项时 我的浏览器上出现以下错误 致命错误 超过了最大执行时间 30 秒 c wamp www drupal2 includes common inc 第 551 行 我在 drupal 6 站点 所有
  • jQuery 在 div 标签内添加图像

    我有一个 div 标签 div Where is the image div 我想在 div 内添加一个图像标签 最终结果 div img src theImg png Where is the image div 您是否尝试过以下操作 t
  • LibGdx 2 半屏“按钮”

    Android 所以我是 LibGdx 的新手 我正在尝试编写这个 chrome 恐龙迷你游戏 我想在用户触摸屏幕左侧时执行操作 1 并在触摸屏幕右侧时执行操作 2手边的屏幕 我该怎么办 您可以通过在游戏循环中的某处使用以下代码来检测被触摸
  • cs50的tideman lock_paiors函数问题

    大家好 我的 pset3 上的锁对功能有问题 tideman 希望得到一些反馈 bool checkcycle int from int to if from to return true int i for i 0 i lt candid
  • IIS 6.0 中是否有相当于 Apache 的 auto_prepend_file 的功能

    在 LAMP 堆栈上我可以使用 gt php value auto prepend file bootstrap php 在 htaccess 中引导一系列我想在处理任何页面之前执行的命令 是否可以在 IIS 6 0 中执行相同的操作 更新
  • Java 正则表达式转大写

    所以我有一个像这样的字符串 2000cc 车辆翻新发动机 我想把它变成 2000CC 车辆翻新发动机 2000CC 上的大写字母为 cc 我显然做不到text replaceAll cc CC 因为它将用大写版本替换所有出现的 cc 因此单
  • 检测编译后的perl脚本是否动态加载模块

    我正在使用 Strawberry Perl 运行 Windows 10 我用PAR 打包机模块来制作我的一些 Perl 脚本的可执行版本 我发现有些模块例如XML LibXML 需要安装 Perl 才能运行可执行文件 由于我是为没有 Per