C++ 如何在没有二进制源代码的情况下将库从动态链接到静态?

C++ 如何在没有二进制源代码的情况下将库从动态链接到静态?,c++,c,linux,C++,C,Linux,我想知道一个动态链接到另一个库的库是否可以在没有库的源代码的情况下使这个链接成为静态的,这样就不可能重新编译库 我怀疑某个动态链接到我的应用程序的库在应用程序运行时没有正确加载自己的动态链接库,或者加载得太晚,从而导致了问题 这就是为什么我想使链接保持静态 我还想让库直接链接(静态或动态)到应用程序,这会造成麻烦。但图书馆将连接两次。听起来对我不好 简言之:不,这是不可能的。从理论上讲,在一个库中同时损坏两个库是可能的,但实际上没有工具可以做到这一点。但这完全无关。确定共享库是如何链接的并不是一

我想知道一个动态链接到另一个库的库是否可以在没有库的源代码的情况下使这个链接成为静态的,这样就不可能重新编译库

我怀疑某个动态链接到我的应用程序的库在应用程序运行时没有正确加载自己的动态链接库,或者加载得太晚,从而导致了问题

这就是为什么我想使链接保持静态


我还想让库直接链接(静态或动态)到应用程序,这会造成麻烦。但图书馆将连接两次。听起来对我不好

简言之:不,这是不可能的。从理论上讲,在一个库中同时损坏两个库是可能的,但实际上没有工具可以做到这一点。但这完全无关。确定共享库是如何链接的并不是一个很大的谜。确定特定共享库链接到哪些库是很简单的。共享库与另一个库链接,或者不链接。不存在模糊、不确定、中间状态。应该可以在几秒钟内回答此问题。在使用的任何调试器中运行应用程序,都会收到诊断消息,告诉您以什么顺序加载了哪些库。简言之:不,这是不可能的。从理论上讲,在一个库中可以将两个库合并在一起,但实际上并没有这样做的工具。但这完全无关。确定共享库是如何链接的并不是一个很大的谜。确定特定共享库链接到哪些库是很简单的。共享库与另一个库链接,或者不链接。不存在模糊、不确定、中间状态。应该可以在几秒钟内回答此问题。在使用的任何调试器中运行应用程序,都会收到诊断消息,告诉您哪些库以什么顺序加载。