dlopen

    0热度

    1回答

    我做一个简单的插件框架,我想能够dlopen()的共享库(即插件),检查和使用任何工厂的功能是提供并最终dlclose()它,不留痕迹。 我的工厂制度是微不足道的,只有一个导出的函数返回一个指向一个共同的基类。为了检查插件是否已正确卸载,我有一个静态对象,它的析构函数从主程序中设置了一个bool。 这里的主要程序: // dltest.cpp follows. Compile with g++ -

    0热度

    1回答

    不幸的是,我不能发布这个源代码,但我会尽量设置它,尽我所能。我有一个dynamic_cast未能转换为派生类类型的情况,我知道它应该成功(即我知道实例的实际类型)。 另外一个堆分配的对象的typeid不等于一个堆栈分配对象的typeid! IE, Foo mstack; Foo*mheap = new Foo(); typeid(mstack) == typeid(*mheap); // re

    1热度

    2回答

    我在用dlopen加载的共享对象(代码)中。我想知道加载调用的标志。我无法访问加载程序(代码) - 例如它可能是一个脚本解释器 - 但我必须创建具有相同标志的后续dlopen调用。 我该怎么做?

    3热度

    2回答

    我想写一个抽象来加载Windows和Linux上的动态库。虽然在Windows平台上一切顺利,我得到一个SIGSEGV当我打电话dlopen: // File: Main.cs using System; using System.Runtime.InteropServices; namespace DlopenTest { class MainClass {

    0热度

    2回答

    下午好, 我真的很感激,如果任何人都可以,请给一个什么可以在涉及的dlopen以下情形是发生的线索。我想通过调用dlopen(“/ system/lib/libmedia.so”,RTLD_LAZY)加载Android系统的库libmedia.so;从一个库(libA)静态链接到一个上部库(libB)与ndk。这最后一个库是由Java应用程序通过JNI调用的。 的问题是,这个调用dlopen的,老

    10热度

    1回答

    一些精心调试后,我发现,根植于制度框架加载马车苹果捆在我的应用程序中的错误: /System/Library/CoreServices/MLTEFile.bundle 我深信,我不是从这个捆绑的服务中受益,并怀疑许多应用程序是。事实上,我通过研究Xcode本身了解到,捆绑包不能被加载到Xcode的内存空间中,因为捆绑包不是垃圾收集兼容的。 所以理想情况下,我想阻止将此捆绑包加载到我的应用中。解

    2热度

    1回答

    我一直在使用OpenCL最近在我的Ubuntu 12.04机器上玩弄OpenCL。当我拨打cl::Platform::get时,我得到一个-1001的错误代码。经过一番研究后,我发现当c调用getPlatformIDs找不到有效的平台时会发生这种情况,并且在/ etc/OpenCL/vendors /目录中没有.icd文件时,或者在执行( s)所引用的文件无法打到dlopen。 但是,我已经测试了

    0热度

    1回答

    我正在使用MPI创建并行进程的项目,每个进程使用dlopen()加载已作为共享对象库构建的模块。我正在编写的一个模块使用第三方库(HDF)。当我运行该程序,dlopen的抛出一个错误: dlopen的失败:/home/jwomble/QTProjects/Sur​​rogateModule/libsurrogate.so:未定义的符号:H5T_NATIVE_INT32_g 未定义的符号在HDF库。

    1热度

    2回答

    我可以在一个进程中的库中获得通知吗,每当在同一进程中使用linux上的dlopen()函数从任何其他库加载新库时? 谢谢。

    2热度

    1回答

    我在Linux上(Ubuntu 12.04,gcc 4.6.3),试图弯曲dlopen /接近我的意志,以便制作一个基于插件的应用程序,可以在必要时重新加载插件(例如,如果它们是重新编译)。 基本理论很简单:dlopen插件;使用它,跟踪所有正在使用的符号。当需要重新加载时,清理所有符号并关闭插件。 我一起扔一个简单的演示应用程序,“TEST.CPP”: #include <dlfcn.h> #