这是我一直感到困惑的一件事:当软件以二进制形式发布时,供应商有时会提供几个用GCC的不同版本编译的二进制文件。我以Opera浏览器为例,但我记得其他软件供应商也这样做。
Opera为他们的浏览器(http://snapshot.opera.com/unix/10.0-Alpha-1/intel-linux/)提供了几个构建:
GCC的说法为何?我认为它与依赖关系管理无关,不像打包(RPM或DEB)或Qt版本。
发布于 2009-05-27 04:38:38
在这种情况下,这是因为QT是在C++中构建的,最近几个GCC版本已经破坏了C++ ABI,这就是为什么您需要使用与系统相同的版本。
一般来说,商业应用程序在可能的情况下是静态链接的,因为依赖系统库(除了libc之外)充满了危险。
有关Debian上一次更改C++ ABI的详细信息可以在以下网站看到:
https://serverfault.com/questions/12790
复制相似问题