MacOS 自带的 gcc/g++ 版本与 Xcode 版本有关,通常默认的 gcc/g++ 版本都比较低。难道为了一个 gcc/g++ 要升级一下 Xcode?感觉有点划不来啊~

    所以,对于 MacOS 用户来说,建议你使用 HomeBrew(有关 HomeBrew 的安装和使用不做说明,可以自行了解)!

    有了 HomeBrew 我们就可以很方便的查看当前 gcc 的最新稳定版本:

    1. $ brew info gcc
    2. ==> gcc: stable 12.2.0 (bottled), HEAD
    3. GNU compiler collection
    4. https://gcc.gnu.org/
    5. Not installed
    6. From: https://github.com/Homebrew/homebrew-core/blob/HEAD/Formula/gcc.rb
    7. License: GPL-3.0-or-later with GCC-exception-3.1
    8. ==> Dependencies
    9. Required: gmp ✔, isl ✔, libmpc ✔, mpfr ✔, zstd
    10. ==> Options
    11. --HEAD
    12. Install HEAD version
    13. ==> Analytics
    14. install: 77,732 (30 days), 300,563 (90 days), 1,443,989 (365 days)
    15. install-on-request: 38,513 (30 days), 148,834 (90 days), 682,628 (365 days)
    16. build-error: 257 (30 days)

    譬如,当前最新的稳定版本是 12.2.0。如果你想安装最新的稳定版本可以直接使用下面的安装命令:

    1. $ brew install gcc

    但是呢,如果你想要安装指定的 gcc 版本就不能使用这个命令了,可以先使用 search 查看下所有稳定版本信息:

    1. $ brew search gcc
    2. ==> Formulae
    3. aarch64-elf-gcc gcc@11 gcc@6 gcc@9 x86_64-elf-gcc scc
    4. gcc gcc@4.9 gcc@7 i686-elf-gcc ghc tcc
    5. gcc@10 gcc@5 gcc@8 libgccjit grc ncc
    6. ==> Casks
    7. gcc-aarch64-embedded gcc-arm-embedded gcs icc

    现在,所有的稳定版本就一目了然了~

    那现在我想要安装 gcc-11 这个版本就直接执行下面的命令即可:

    1. $ brew install gcc@11

    安装完成后如果运行 gcc -v 你可能会发现 gcc 版本并没有发生变化,正确的打开方式是在后面追加你的安装版本。譬如 gcc@11 这个版本:

    1. $ gcc-11 -v
    2. $ g++-11 -v

    如果每次使用 gcc/g++ 命令都要在后面加上版本号就会感觉很不舒服,所以建议你使用 alias 命令写到配置文件中:

    1. alias gcc='gcc-11'
    2. alias g++='g++-11'
    3. alias cc='gcc-11'
    4. alias c++='g++-11'

    之后刷新下系统命令就可以了~

    示例:

    1. $ gcc -v
    2. Using built-in specs.
    3. COLLECT_GCC=gcc-11
    4. COLLECT_LTO_WRAPPER=/usr/local/Cellar/gcc@11/11.3.0/bin/../libexec/gcc/x86_64-apple-darwin21/11/lto-wrapper
    5. Target: x86_64-apple-darwin21
    6. Configured with: ../configure --prefix=/usr/local/opt/gcc@11 --libdir=/usr/local/opt/gcc@11/lib/gcc/11 --disable-nls --enable-checking=release --with-gcc-major-version-only --enable-languages=c,c++,objc,obj-c++,fortran,d --program-suffix=-11 --with-gmp=/usr/local/opt/gmp --with-mpfr=/usr/local/opt/mpfr --with-mpc=/usr/local/opt/libmpc --with-isl=/usr/local/opt/isl --with-zstd=/usr/local/opt/zstd --with-pkgversion='Homebrew GCC 11.3.0' --with-bugurl=https://github.com/Homebrew/homebrew-core/issues --enable-libphobos --build=x86_64-apple-darwin21 --with-system-zlib --with-sysroot=/Library/Developer/CommandLineTools/SDKs/MacOSX12.sdk
    7. Thread model: posix
    8. Supported LTO compression algorithms: zlib zstd
    9. gcc version 11.3.0 (Homebrew GCC 11.3.0)