我可以从一个.so获得符号名称并制作另一个。所以看到了吗?

时间:2017-04-30 12:26:18

标签: c++ linux compilation linker shared-libraries

我已经分别构建了 zlib libpng (这些库并不重要),所以我有了libz.so和libpng.so现在。使用 dlopen() dlsym()我从libpng.so获取函数指针并使用它们,但问题是,由于libpng依赖于zlib,我会遇到链接器错误当libpng函数在其自身内部调用一些zlib函数时。所以我的问题是:如果不与libpng一起构建zlib,是否有可能解决这个问题?我可以以某种方式从zlib获取符号名称并使libpng看到它们吗?

P.S。由于任务,我无法使用动态链接。

1 个答案:

答案 0 :(得分:1)

我找到了解决方案。只需在dlopen中使用 RTLD_GLOBAL 标志,就可以了:)