【发布时间】:2013-04-27 14:34:51
【问题描述】:
我想知道是否可以实现上述目标。显然,可以在 Linux 中使用dlopen, dlsym 方法加载库并调用它的方法。但它需要知道函数原型才能在调用之前将void * 指针转换为相应的类型。
假设原型元数据可以在外部提供(使用一些描述符文件等)
有没有办法做到这一点?
【问题讨论】:
-
我相信这通常是不可能的(尽管使用可变参数的一些黑客可能会起作用)。你有一个特定的目的吗?
-
C 不是像 python 或 javascritp 这样的动态语言,你必须知道你的函数原型
-
@larsmans 实际上,这是针对一些实验性代码,我正在尝试为 RPC 服务器编写类似功能,其中通过 HTTP 调用获得的参数将用于调用库中存在的某些函数可以在运行时加载。
标签: c linux shared-libraries ld