C++ 我能从一个符号中得到一个符号名吗?然后再做一个。看到了吗?

C++ 我能从一个符号中得到一个符号名吗?然后再做一个。看到了吗?,c++,linux,compilation,linker,shared-libraries,C++,Linux,Compilation,Linker,Shared Libraries,我分别构建了zlib和libpng(这些lib是什么并不重要),所以现在我得到了libz.so和libpng.so。对于dlopen()和dlsym(),我从libpng.so获取函数指针并使用它们,但问题是,由于libpng依赖于zlib,所以当libpng函数调用自身内部的某个zlib函数时,我会得到链接器错误。因此,我的问题是:如果不将zlib与libpng一起构建,是否有可能解决这个问题?我可以从zlib中获取符号名并让libpng看到它们吗 另外,由于任务原因,我无法使用动态链接。我找

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


另外,由于任务原因,我无法使用动态链接。

我找到了解决方案。只要在dlopen中使用RTLD\u GLOBAL标志,你就会没事:)

为什么你想使用dlopen/dlsym而不仅仅是链接库?只要确保你没有循环依赖关系。我不想使用dlopen/dlsym,但我的老师想:)