符号版本和dlsym

时间:2011-04-07 21:12:31

标签: c linker shared-libraries

我使用dlopen在我的程序中加载pthread库,并使用pthread_create将处理程序提取到pthread_joindlsym

如何确保两个处理程序兼容?我不在乎这些符号是新版本还是旧版本。我只是希望我使用的pthread_create与我得到的pthread_join一起使用。

我知道有一个dlvsym我可以传递显式版本号,但我不关心确切的版本号,因为我希望我的代码独立于库版本。

2 个答案:

答案 0 :(得分:2)

版本控制存在的唯一原因是ABI与针对古代版本的glibc编译的程序的兼容性很差,无论如何它实际上都不会起作用。 (他们默默地打破了ABI至少一次,据我所知,这种方式无法兼容。)请忽略它。

答案 1 :(得分:0)

听起来你需要“dladdr - 找到包含给定地址的共享对象”。

但是,由于您尚未说明您正在使用的平台,因此可能无法使用。

看一看..