工作需要,好不容易编译过了。其实这个已经很古老了,貌似最新的版本已经不支持。

  • 下载sdk

https://developer.mozilla.org/en-US/docs/Mozilla/Gecko/Gecko_SDK

注意,必须下载xulrunner-1.9.0.17.en-US.linux-i686.sdk.tar.bz2。别的都编译不过。

  • 下载npruntime

https://dxr.mozilla.org/seamonkey/source/modules/plugin/samples/npruntime/

注意:每个源码打开,选择内容复制,再粘贴到本地的文件。

  • 编译

XULRUNNER=${HOME}/xulrunner-sdk-1.9

g++ -shared \
    np_entry.cpp npp_gate.cpp npn_gate.cpp plugin.cpp \
    -I ${XULRUNNER}/include \
    -I ${XULRUNNER}/include/java \
    -I ${XULRUNNER}/include/nspr \
    -I ${XULRUNNER}/include/plugin \
    -o libnprt.so

错误解决办法:

  • 在plugin.h增加几个include:
#include <cstddef>
#include <string.h>
#include <stdlib.h>
#include <stdio.h>
  • npp_gate.cpp:264:1: error: ‘jref’ does not name a type

注释之。