将libstdc++;静止的 我最近在GNU/Linux和UNIX中开发了一个C++服务器应用程序,包括Solaris、HPX等。由于我的公司计划从头开始重写所有的东西,我在考虑如何用现代C++开发.

将libstdc++;静止的 我最近在GNU/Linux和UNIX中开发了一个C++服务器应用程序,包括Solaris、HPX等。由于我的公司计划从头开始重写所有的东西,我在考虑如何用现代C++开发.,c++,linux,unix,libstdc++,C++,Linux,Unix,Libstdc++,不幸的是,由于它的封闭平台性质,似乎并不总是能够在客户机的机器上获得下降libstdc++运行时。我知道libstdc++是向后兼容的,但我必须以GCC 3.4或4.2(在HP-UX的情况下)为目标,而他们(Unix提供程序)的编译器是向后兼容的 幸运的是,从法律的角度来看,似乎有些人声称 从技术角度提出建议。然而,我不确定这样做是否安全(在法律和技术方面) 链接libstdc++static有意义吗?本产品为第三方开发人员提供可执行和共享库,它不会加载任何不在系统中的第三方共享库。我的50美分

不幸的是,由于它的封闭平台性质,似乎并不总是能够在客户机的机器上获得下降libstdc++运行时。我知道libstdc++是向后兼容的,但我必须以GCC 3.4或4.2(在HP-UX的情况下)为目标,而他们(Unix提供程序)的编译器是向后兼容的

幸运的是,从法律的角度来看,似乎有些人声称 从技术角度提出建议。然而,我不确定这样做是否安全(在法律和技术方面)

链接libstdc++static有意义吗?本产品为第三方开发人员提供可执行和共享库,它不会加载任何不在系统中的第三方共享库。

我的50美分:

我非常喜欢静态链接(尤其是在Windows上),但代价是如果出现bug/安全问题,你必须重新发布产品或提供更新。我不愿意在Linux/Unix中这样做,因为您通常不具备所有Unix操作系统的二进制兼容性。如果你为一个目标系统编译,那么这并不重要(除了,同样,你必须自己通过更新来处理bug)

就性能而言,共享库的加载开销很小,这在当今是可以忽略不计的

从法律上讲,你很好(免责声明,我不是律师,你可能想咨询你公司的律师)。GNU在其运行时库中具有以下功能:

源代码在GNU通用公共许可证下发布 第3版,在第7节下增加了一个例外情况 在“GCC运行时库异常,版本3.1”中,如下所示(或参见 文件(正在复制.RUNTIME)

如果不是这样的话,那么在Linux上就不会有合适的产品


您也可能想考虑使用CLAN编译器,如果您关心许可的话。它有一个新的名字。好吧,既然你是从头开始重写东西。

好问题,我一直想知道法律含义。。。