[英]Is it safe to replace GCC's system-level C++ runtime with a version from newer GCC?
Linux C ++程序使用針對libgcc_s.so.1
和libstdc++.so.6
庫的GCC鏈接構建,每個庫包含多個ABI:較新版本包含先前版本的ABI和新版本的ABI。 GCC ABI策略文檔說,應該能夠使用新的運行時運行針對舊運行時構建的程序。 因此,從理論上講,較舊的二進制文件應該可以在新系統上運行。
如果我的系統具有較舊的運行時並且不想在此系統上遇到升級GCC的麻煩,我可以手動用新的庫替換上面提到的庫嗎? 從理論上講,與之相關的所有舊的可執行文件都應該可以工作(包括GCC本身),但它感覺就像一個kludge。
這樣做是否安全?
也許 ,但我不推薦它,至少沒有經過大量測試幾乎肯定會吃掉任何收益。 原因如下:
你的目標是什么? 如果您只是希望能夠編譯使用更新功能的C ++應用程序,您可以安裝新版本的GCC和原始版本,您只需要確保您可能使用的所有庫都是使用新版本構建的。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.