我可以从一个 .so 中获取符号名称并创建另一个 .so 吗?
Can I get symbol names from one .so and make another .so see it?
我已经分别构建了 zlib 和 libpng(这些库是什么并不重要),所以我有 libz.so 和 libpng.so 现在。使用 dlopen() 和 dlsym() 我从 libpng.so 获取函数指针并使用它们,但问题是,因为 libpng取决于 zlib,当 libpng 函数调用自身内部的某些 zlib 函数时,我会收到链接器错误。所以我的问题是:如果不将 zlib 与 libpng 一起构建,是否可以解决这个问题?我能以某种方式从 zlib 获取符号名称并让 libpng 看到它们吗?
P.S。由于任务,我无法使用动态链接。
我找到了解决办法。只需在 dlopen 中使用 RTLD_GLOBAL 标志就可以了:)
我已经分别构建了 zlib 和 libpng(这些库是什么并不重要),所以我有 libz.so 和 libpng.so 现在。使用 dlopen() 和 dlsym() 我从 libpng.so 获取函数指针并使用它们,但问题是,因为 libpng取决于 zlib,当 libpng 函数调用自身内部的某些 zlib 函数时,我会收到链接器错误。所以我的问题是:如果不将 zlib 与 libpng 一起构建,是否可以解决这个问题?我能以某种方式从 zlib 获取符号名称并让 libpng 看到它们吗?
P.S。由于任务,我无法使用动态链接。
我找到了解决办法。只需在 dlopen 中使用 RTLD_GLOBAL 标志就可以了:)