dlopen

    -3热度

    2回答

    我已通过多个堆栈溢出职位消失,试图执行下面的例子与C++对象类 我具有以下的代码使用的dlopen类对象。 1)文件hello.cc #include <stdio.h> #include "hello.h" A::A() { init1(); } void A::init1() { printf("\n init "); } 2)文件hello.h #inclu

    3热度

    1回答

    当你使用共享对象时,是否有一种机制让该DLL中的代码执行而不被显式调用?具体而言,调用者dlopen()可能不知道的全局/静态C++静态初始化代码?我很确定答案应该是“是”,但我不记得是什么机制使这种情况发生,以及如何利用它来运行任意代码。

    0热度

    2回答

    我有一个编译为.so文件(使用g ++ 5编译)的C++项目。 在另一个项目中(在相同的解决方案下),我有一个链接到这个项目的测试(CMake的命令target_link_libraries(...))。 我编译项目,并复制输出.so文件,让可以说“/tmp/proj.so”。 除了将测试链接到项目外,我还使用dlopen动态加载“/tmp/proj.so”,该函数具有全局函数create_foo

    2热度

    1回答

    我希望能够将共享库的多个副本加载到相同的地址空间。我希望他们不要共享任何全局变量,并且我希望这两个副本不知道另一个已加载。 用例是一个线程安全库的并行执行。 我怎样才能做到这一点 在Linux上 ? 在OS X上? 在Windows上? on * BSD? 在其他类Unix系统上?

    0热度

    1回答

    dlopen的我想加载从gdb的共享库(的.so),我发现这个命令: (gdb) call dlopen("path/to/lib.so",..) 但它不工作,我联系我的程序与-ldl。 我得到的错误是: No symbol "dlopen" in current context 我错过了什么?

    1热度

    2回答

    几年前,我听说Google有一个修补程序,用于将存储在另一个文件中的共享对象存储在非零偏移量或mmap'd中,而不是坐在自己的独立文件中。那有没有土地?加载这些对象的API是什么?

    3热度

    2回答

    我试着动态加载与C和我已经遇到了问题,在非常设置。我有一个运行时加载对象的小程序。该对象包含一个将某些消息写入stdin的函数。这是在OS X 10.10上使用clang编译的。下面是代码: /* loader.c */ #include <stdlib.h> #include <stdio.h> #include <dlfcn.h> #include "module.h" int

    1热度

    2回答

    我需要从使用C++的Solaris 10上的当前可执行文件中知道函数地址(我正在使用GNU g ++ 4.9.2)。例如,我有一个函数说:void doSomething(const char * p),它可能会或可能不会在当前的可执行文件中定义。所以,我想搜索当前可执行文件中的函数(如果存在),然后调用该函数执行一些默认操作。我怎么做? dlsym会帮忙吗? 请帮助我的语法和损坏的名称。

    0热度

    1回答

    即时通讯在模块化程序上使用dlopen,我认为有些事情真的是错误的,但我似乎无法弄清楚。 requirementData是一个名为VoidData的类的向量。它仅仅是一个类来处理void *容易 getCopyOfData()使用memcpy来复制存储在void *中的数据。直到此处为止,地址voidptr与存储在我的VoidData对象中的地址不同,因此副本是成功的。 现在... stringA

    3热度

    3回答

    我一直在努力与dlopen和未定义的符号。 我已经和到目前为止已经试过:与功能functionA() libraryB.so这是使用functionA() libraryA.a与功能functionA() libraryA.so 执行能够加载libraryB.so与dlopen。 我得到的是: undefined symbol: functionA 如何我构建: LibraryA的: gcc