-
36 votesanswersviews
加载共享库时自动执行的功能
在Windows中加载共享库时, LoadLibrary() 调用会导致库中的 DllMain 为每个新进程和线程库附加执行,并为每个进程和线程库执行detaaches . Mac OS X,Linux和其他POSIX兼容的操作系统是否有类似的机制? -
10 votesanswersviews
以编程方式在共享库中获取函数名称
当我使用 dl_open() 时,是否可以通过编程方式从共享库(仅限Linux)获取所有函数名称的列表? 我想要这样的东西: std::vector<std::string> list_all_functions(void *dl) { //... what can I do here? } int main() { void * dl = dl_open("... -
2 votesanswersviews
即使nvidia.icd存在且包含'libcuda.so',getPlatformIDs()也会返回-1001
我最近在Ubuntu 12.04机器上玩过OpenCL . 当我调用 cl::Platform::get 时,我得到的错误代码为-1001 . 经过一些研究,我发现当c调用 getPlatformIDs 无法找到有效平台时会发生这种情况,并且当/ etc / OpenCL / vendors /目录中没有.icd文件或者实现时(例如) s)通过调用 dlopen 无法打开文件引用的文件 .然而,我... -
1 votesanswersviews
如何在提供库的地址时获取共享库中符号的地址?
我正在学习如何在Linux上使用C / C中的共享库 . 我遇到了一个我不知道如何解决的问题 . 让's say I have a shared library and an executable. However I don' t知道库's name or file location (so I can' t dlopen 它) . 我只能找到库映射到可执行文件内存的地址范围 . 有没有办法以...