Debian

無需升級發行版即可自動將 GCC 更新到更高版本

  • August 18, 2014

我的理解是 G++ 4.7.2 中的 C++11 支持不是很好(每次我嘗試編譯我的 C++ 程式碼時它都會給我一個警告,大概有這些警告的充分理由),所以我想我會嘗試更新更新的東西。

我沒有很多下載配額,所以我真的想限制我的下載量,所以我絕對不想升級 Debian stable (Wheezy) 或升級build-essentials,除非我真的需要。

是否有一個簡單的命令可以用於apt-get最新的 GCC 版本(或任何完全支持 C++11 的版本),而不會對我的 aptitude 儲存庫做任何麻煩的事情?

如果答案以我可以執行的命令的形式出現,它將覆蓋任何現有的安裝,我會更喜歡它,因為我仍在為整個 Linux 安裝過程而苦苦掙扎。

包管理為您提供了一組“屬於一起”的包。試圖欺騙它安裝一套不屬於您的發行版的新軟體可能“效果不佳”。通常發生的情況是,您會得到一個巨大的後續軟體包菊花鏈,還需要升級(例如“gcc 需要新的 glibc,新的 glibc 需要新的 binutils,新的 binutils 會破壞您的 gdb,因此您需要更新“, ETC)。

我發現保留現有已安裝工具的位置是一個更好的解決方案,然後建構我自己的 gcc、llvm+clang、gdb、lldb 或任何我認為需要更高版本的版本。通常,這可以正常工作,因為它安裝在 /usr/local/{bin,lib,include,…} 中,而發行版工具安裝在 /usr/{bin,lib,include,…} 中 - 所以如果您需要使用較舊的(有時會出現這種情況,例如,您有一個較新的 gcc,但不幸的是無法編譯項目 A - 甚至無法編譯自己)-您使用 use /usr/bin/ gcc 或編輯您的 $PATH 以不使用 /usr/local。

我安裝了 Fedora-16,但我使用 gcc 4.8.2(截至 3 月底的最新版本)和 clang 3.5 - 系統附帶的預設編譯器是 gcc 4.6.3 和 clang 2.9。Clang 3.5 需要兼容 C++11 的編譯器,因此該項目需要 4.7 或 4.8。它工作得很好。(但是新的 gcc 和 clang 破壞了舊的 gdb,使得符號無法按預期工作,所以我需要重建 gdb 或升級它)。

引用自:https://unix.stackexchange.com/questions/126433