【问题标题】:Is there a way to list all required dynamic libraries by perl?有没有办法通过 perl 列出所有必需的动态库?
【发布时间】:2011-07-29 11:56:48
【问题描述】:

正如我们所知,许多 perl 模块依赖于一些动态库来运行,由 DynLoader 加载(不过我不知道是否有其他方法可以加载 .so)。

./perl_programe

有没有办法列出特定 perl 程序所需的所有动态库?

【问题讨论】:

    标签: perl shared-libraries


    【解决方案1】:

    试试这个脚本:

    #! /usr/bin/perl
    do shift;
    print "$_\n" for @DynaLoader::dl_shared_objects;
    

    将脚本作为第一个(也是唯一一个)参数进行检查。例如./dyna perl_programe

    【讨论】:

    • 这是一个相当邪恶的把戏。它在其他一些语言中的作用类似于include。有关更多信息,请参阅perldoc.perl.org/functions/do.html 中的“执行 EXPR”。
    • 如果perl_programe 只是<>;,它似乎解决了问题。它在我按下回车之前直接退出。
    • 使用require 而不是do 似乎更好,这只是include 的工作。你怎么看?
    • 只有当您尝试将脚本应用到自身时,差异才有意义,这无论如何都是个坏主意。
    • 你确定有区别吗?我刚试过,似乎dorequire 相同,即使它适用于自身......说,它不会加载文件两次。
    猜你喜欢
    • 2022-08-18
    • 2012-03-27
    • 2021-11-09
    • 1970-01-01
    • 2014-04-16
    • 2011-07-03
    • 2012-01-12
    • 2021-12-14
    • 1970-01-01
    相关资源
    最近更新 更多