【发布时间】:2010-07-09 15:36:08
【问题描述】:
我正在编写一个不兼容 GNU GPL 的跨平台应用程序。我目前面临的主要问题是应用程序与 glibc 和 libstdc++ 动态链接,并且几乎每个库的新主要更新都不向后兼容。因此,在我的应用程序中会出现随机崩溃。
作为一种解决方法,我分发在几个不同系统上编译的应用程序的二进制文件(具有不同的 C/C++ 运行时版本)。但我不想这样做。所以我的问题是,牢记许可和一切,我可以静态链接 glibc 和 libstdc++ 吗?另外,这会导致 rtld 出现问题吗?
【问题讨论】:
-
glibc 和 libstdc++ 的维护者在保持向后二进制兼容性方面做了大量工作。主要版本确实在设计上破坏了它,但这种情况并不经常发生。您可能会通过在不太现代的系统上构建二进制文件或使用 Linux 基金会的一些 LSB 工具来解决您的问题(请参阅here;这些工具是免费的;是的,我为他们工作,所以我有偏见)。