【问题标题】:Function attribute for dynamically loading functions用于动态加载函数的函数属性
【发布时间】:2017-09-28 19:09:21
【问题描述】:

我想在运行时使用 dlopen+dlsym 调用加载一个库。我想列出应该使用 dlsym() 加载的函数的名称,并使用简单的“for”循环加载这些函数。有没有办法标记要使用“dl”调用加载的函数(可能使用“gcc”属性)?

谢谢, 公羊。

【问题讨论】:

  • 最简单的方法是创建一个函数来填充函数的名称,或者将它们作为变量,dlsym...
  • 你能解释一下吗?

标签: c dynamic-loading


【解决方案1】:

在类 Unix 系统中有一个名为 nm 的命令,它返回 .so 文件中包含的符号。用法是nm -g filename.so(你可以找到更多here)。

我猜你可以用exec 或类似的东西来调用这个命令。

如果你不能使用 exec,你需要参与source code of the nm 命令并在你的程序中使用它

【讨论】:

  • 但是 nm 会列出给定 .so 中的所有符号。我只在寻找几个功能。
  • 我猜你必须调用 nm 并从 C 代码的输出中搜索你想要的符号。或者,由于您正在执行命令,您可以使用grep 命令在同一exec 命令中解析nm 的输出。
  • 如何在 grep 输出中只找到所需的函数?
猜你喜欢
  • 2014-04-15
  • 1970-01-01
  • 2023-03-29
  • 1970-01-01
  • 2012-01-31
  • 1970-01-01
  • 2012-04-12
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多