Linux C ++程序使用GCC链接针对libgcc_s.so.1
和libstdc++.so.6
库构建,每个库都包含多个ABI:较新的版本包含以前版本的ABI和新的ABI。GCC ABI政策文件指出,针对较早的运行时构建的程序应能够与新的运行时一起运行。因此,理论上,较旧的二进制文件应可在新系统上运行。
如果我的系统具有较旧的运行时,并且不想在该系统上升级GCC的麻烦,是否可以用新的库手动替换上述库?从理论上讲,所有链接到它的旧可执行文件都应该起作用(包括GCC本身),但这听起来像是一团糟。
这样做安全吗?
也许,但我不推荐它,至少在没有几乎肯定会消耗任何收益的广泛测试的情况下不会。原因如下:
你在这里的目标是什么?如果您只想编译使用更新功能的 C++ 应用程序,您可以在原始版本的旁边安装新版本的 GCC,您只需要确保您可能使用的所有库也是用新版本构建的。
归档时间: |
|
查看次数: |
643 次 |
最近记录: |