dlsym

    -1热度

    1回答

    我想在C(在Linux上)链接到一个共享库 我想压制或处理的: “错误而载入共享库:libxxxx.so:无法打开共享对象文件:没有这样的文件或目录” ,并继续加载链接到下一个可能的解决仍未解决的符号库。 我想应该用gcc/LD/dlsym进行选择,但不能设法了解... 没有人有线索?

    1热度

    1回答

    我试着用 extern void __NSAutoreleaseNoPool(void* obj); 但链接时(不知道它需要什么框架,虽然)导致一个未解决的符号。 我也试过 dlsym(RTLD_DEFAULT, "__NSAutoreleaseNoPool") ,但只是给是NULL。 我试着用_dyld_lookup_and_bind和NSLookupSymbolInImage但他们也不

    1热度

    1回答

    已经解决!See the result here。 不知道我是否在正确的地方问,但有没有人知道基于.h文件生成dlopen和dlsym命令的正确方法? 我想动态加载SDL2 - 这是一个用C编写的库 - 但所有提取函数列表和他们的参数与ctags的方法似乎没有结果(必须手动更正240个函数的参数列表3500是不好玩)。 ctags -R -x --sort=yes --c++-kinds=+p -

    1热度

    1回答

    dlsym()的man page名单 *(void **) (&cosine) = dlsym(handle, "cos"); 作为用于铸造的dlsym()返回值一种解决方法。 *(void **) (&cosine)这是什么意思?据我所知cosine是一个先前定义的函数指针,但我不知道为什么在名称前需要使用&符号&(错误没有&)。此外,我不知道为什么指针void *(void **)再次与*

    1热度

    2回答

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

    4热度

    1回答

    很容易找到使用 dlsym()和这个系列的其他功能,但如何在内部工作?是否有可能编写自己的,简单的dlsym()实现? 我想知道是否可以实现类似的行为,但不与连接-ldl(可以说,我不能这样做)。

    0热度

    1回答

    我找不到任何使用dlsym加载Objc方法符号的联机示例。 虽然我可以上课,但使用类似 dlsym(handler, "OBJC_CLASS_$_CLLocationManager") 但我不知道如何获得方法符号。

    2热度

    3回答

    的情况下,我创建一个使用dlsysm(剪切对象开放),但我收到以下错误: error: invalid conversion from "void*" to "void (*)()" 这里是我的代码: #include<iostream> #include<dlfcn.h> using namespace std; int main() { void (*fnptr)();

    1热度

    1回答

    我有几个从构建系统中吐出的目标文件(来自C++)。他们有几个extern "C"-我想在程序中使用的链接符号,并且可以通过其他地方的dlopen/dlsym访问。 当使用gcc编译为可执行文件时,这些符号未使用nm -D <executable-here>(即afaik它们不是动态符号)列出。 如何让它们在编译后的可执行文件中显示为动态符号? 我可以改变目标文件和可执行文件的构建标志,但是改变C+

    0热度

    1回答

    如何找到函数open()所在的库?像,包含该功能的实际“xxxxxx.so”文件的名称?另外,有没有一个地方可以为其他功能获取这些信息?