在Julia中,我们可以从共享库中调用一个普通(和导出)函数,如下所示:
libHnd=Libdl.dlopen("/Path/To/Lib.so")
funHnd=Libdl.dlsym(libHnd,"funName")
@ccall $funHdl()::Cvoid
但是,让我们假设库包含一个导出的函数指针的变量,但实际函数没有导出。例如:
static void funName(void);
void (*funPtr)(void)=funName;
在这种情况下,我如何才能从Julia那里调用funPtr?
我特别在寻找一种解决方案,以解决funPtr的值可以由库本身动态更改的情况。(事实上,这就是为什么库只导出函数指针而不是函数本身的原因。libVolk就是这样一个用例的例子)。