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