【问题标题】:How do I compile this plugin?我如何编译这个插件?
【发布时间】:2011-06-21 19:23:42
【问题描述】:

我正在关注 foo 解析器示例,但想知道如何编译它。

foo 解析器示例显示在此链接中: http://www.wireshark.org/docs/wsdg_html_chunked/ChDissectAdd.html

您会注意到它提到 interlink 目录包含我可以使用的支持文件的好示例,并且我需要修改 Makefile.am 和 makefile.common 等。 我已经修改了这些以反映 foo 模块。

但是,现在我想知道如何构建它。我尝试运行 automake,但它抱怨没有 configure.in。抱歉,我对 gnu 构建环境还不太熟悉。

另外,是否可以独立构建此模块?还是我需要所有其他可用的wireshark 资源?我当然在ubuntu下安装了wireshark-dev。

【问题讨论】:

    标签: makefile gnu automake wireshark wireshark-dissector


    【解决方案1】:

    我完成了 README.plugins 程序,这里我得到了什么:

    1) 在plugins目录下,重命名

    • Custom.m4.example 到 Custom.m4
    • Custom.make.example 到 Custom.make
    • Custom.nmake.example 到 Custom.nmake

    2) 将这些文件中出现的所有 foo 重命名为您的协议名称

    3) 转到顶级wireshark目录并运行autogen并以root身份配置

    ./autogen.sh
    ./configure
    

    旁注:确保在这些步骤中没有警告或错误。要正确编译您的插件,请将 gryphon 插件中的以下文件与源文件一起复制到新创建的协议文件夹中,并将所有出现的 gryphon 替换为您的协议名称

    • 作者
    • 正在复制
    • 变更日志
    • CMakeLists.txt
    • Makefile.am
    • Makefile.common
    • Makefile.in
    • Makefile.nmake
    • moduleinfo.h
    • moduleinfo.nmake
    • plugin.c
    • plugin.rc.in

    4) 使用以下命令编译插件。运行 make install 以防万一

    make -C plugins
    make install
    

    5) 最后使用以下命令运行 Wireshark

    WIRESHARK_RUN_FROM_BUILD_DIRECTORY=1 ./wireshark
    

    6) 如果一切顺利,您将在关于 Wireshark 的插件选项卡下看到您的插件。起初我在插件版本上遇到了一些问题。在 #include "config.h" 修复后包括以下行:

    #include "moduleinfo.h"
    

    【讨论】:

      【解决方案2】:

      回答我自己的问题。

      看来我必须按照 Wireshark 源代码中的说明进行操作。 即 doc/README.plugins

      提供为 Wireshark 构建插件所需的所有信息。

      【讨论】:

      • 请注意,wireshark 构建是如何使用自动工具的一个糟糕示例(或者,它可能是如何完全淘汰自动工具的一个很好的示例)。作为一个实用提示,您可能希望完全避免他们的引导程序,而只运行 autoreconf。 (这将为您构建 configure.in 并运行 automake。)
      • 想解释一下它应该用自动工具做什么?
      • @WilliamPursell Wireshark 中的 autotools 配置到底有什么问题?只是autogen.sh 脚本、configure.ac 或一些Makefile.ams?您认为单独的Makefile.common 有问题吗? (这些文件与 Windows 的 nmake 文件共享。)
      • 嗯,自 2009 年左右以来我就没有看过 Wireshark,而且我很确定他们很久以前就离开了自动工具。但是,我记得,他们使用了 很多 样板文件,这些样板文件在 m4 宏中会更好地执行。他们公然违反了基本命名空间规则,对他们定义的大多数(如果不是全部)宏使用保留名称“AC_*”。名称 AC_WIRESHARK 很常见,但前缀 AC_ 只能由 autoconf 本身定义的宏使用。
      猜你喜欢
      • 2016-10-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-07
      • 2019-12-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多