Can't load nppdf.so. How to load lib without dlopen()?
From: ebleble (ebleble_at_poczta.fm)
Date: 05/29/04
- Previous message: Nils O. Selåsdal: "Re: RH 7.3 backwards compatibility (from RH 9)"
- Next in thread: Jens.Toerring_at_physik.fu-berlin.de: "Re: Can't load nppdf.so. How to load lib without dlopen()?"
- Reply: Jens.Toerring_at_physik.fu-berlin.de: "Re: Can't load nppdf.so. How to load lib without dlopen()?"
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Date: 29 May 2004 09:53:27 -0700
Hi,
I try to load 'nppdf.so' library
#include <dlfcn.h>
#include <iostream>
using namespace std;
int main()
{
cerr << "Loading library..." << endl;
void *handle = dlopen("/usr/local/Acrobat5/Browsers/intellinux/nppdf.so",
RTLD_LAZY);
if (handle)
{
cerr << "Unloading library..." << endl;
dlclose(handle);
return 0;
}
cerr << "error: " << dlerror() << endl;
return 0;
}
but when I run this program I get an error
"/usr/local/Acrobat5/Browsers/intellinux/nppdf.so: undefined symbol:
XtStrings"
Any ideas why?
Do you know any alternative way (without using dlopen()) of loading
".so" libs ?
//////////////////////////////////////////////////////
Mozilla loads plugins in a following way
//////////////////////////////////////////////////////
PRLibrary *dlopen_obj;
info->dlopen_obj = NULL;
info->dlopen_obj = NULL;
if (plugin->dlopen_obj == NULL) {
plugin->dlopen_obj = PR_LoadLibrary(plugin->filename);
if (plugin->dlopen_obj == NULL) {
(NP_CREATEPLUGIN)PR_FindSymbol("NP_CreatePlugin",
plugin->dlopen_obj);
(NP_CREATEPLUGIN)PR_FindSymbol(plugin->dlopen_obj,
"NP_CreatePlugin");
int err = PR_UnloadLibrary(plugin->dlopen_obj);
plugin->dlopen_obj = NULL;
f = (NPError(*)(NPNetscapeFuncs *, NPPluginFuncs *))
PR_FindSymbol("NP_Initialize", plugin->dlopen_obj);
f = (NPError(*)(NPNetscapeFuncs *, NPPluginFuncs *))
PR_FindSymbol(plugin->dlopen_obj, "NP_Initialize");
int err = PR_UnloadLibrary(plugin->dlopen_obj);
plugin->dlopen_obj = NULL;
int err = PR_UnloadLibrary(plugin->dlopen_obj);
plugin->dlopen_obj = NULL;
plugin->shutdown = (NPError(*)(void))
PR_FindSymbol("NP_Shutdown", plugin->dlopen_obj);
plugin->shutdown = (NPError(*)(void))
PR_FindSymbol(plugin->dlopen_obj, "NP_Shutdown");
int err = PR_UnloadLibrary(plugin->dlopen_obj);
plugin->dlopen_obj = NULL;
/////////////////////////////////////////////////////
but I can't find definition of PRLibrary, PR_LoadLibrary(),
PR_UnloadLibrary() in Mozilla's source code. It seems that plugin is
loading without dlopen.
Does anybody know how to load plugins (HOWTO or tutorial)?
Thanks in advance
ebleble
- Previous message: Nils O. Selåsdal: "Re: RH 7.3 backwards compatibility (from RH 9)"
- Next in thread: Jens.Toerring_at_physik.fu-berlin.de: "Re: Can't load nppdf.so. How to load lib without dlopen()?"
- Reply: Jens.Toerring_at_physik.fu-berlin.de: "Re: Can't load nppdf.so. How to load lib without dlopen()?"
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Relevant Pages
|