小编Way*_*yne的帖子

要在Linux共享库中构建的信息

我在Linux中有两个共享库,它们在构建时在所有方面都是相同的,除了每个公开的一个函数具有不同的接口(一个接受一些第三方数组类型而另一个接受字符串).我可以构建两个共享库版本,我想知道是否有一种方法可以将元信息插入共享库本身(就像你能够在构建时将注释/公司名称/等插入到DLL中一样) ,然后可以在运行时查询).

我不想以两种不同的方式命名.so文件,因为它们实际上是相同的,它们是更大系统的可互换部分.我需要我的代码在库上执行dlopen和dlsym以了解它的风格,以便它具有正确的接口.

我目前正在实现这一目标的方法是在一个中添加一个名为"Flavor_A"的无操作函数,在另一个中添加"Flavor_B".然后,我将Flavor_A或Flavor_B用于验证我正在处理的共享库.如果我得到一个NULL,我知道Flavor_X不存在,在这种情况下它必须是另一种味道.

我认为必须有更好的方法.所以,这就是我在这里的原因.

任何人都有关于如何在.so二进制文件中构建一些运行时可查询信息的建议?

谢谢.

linux shared-libraries

2
推荐指数
1
解决办法
355
查看次数

标签 统计

linux ×1

shared-libraries ×1