Videos
Homebrew now has the GCC package so you can install it with this command:
brew install gcc
The way I do it is:
- Download the source for GCC and numerous supporting packages. The instructions are in the
gcc-4.x.y/INSTALL/index.htmlfile in the GCC source code, or online at http://gcc.gnu.org/install/.
- GNU Multiple Precision Library (GMP) version 4.3.2 (or later) from http://gmplib.org/.
- MPFR Library version 2.4.2 (or later) from http://www.mpfr.org/.
- MPC Library version 0.8.1 (or later) from http://www.multiprecision.org/.
- ISL Library version 0.11.1 from ftp://gcc.gnu.org/pub/gcc/infrastructure/.
- CLooG 0.18.0 from ftp://gcc.gnu.org/pub/gcc/infrastructure/.
- Use a script to extract the source for GCC and the support libraries into a directory, create the object directory, and run the build.
This is the script I used for GCC 4.8.2:
GCC_VER=gcc-4.8.2
tar -xf ${GCC_VER}.tar.bz2 || exit 1
(
cd ${GCC_VER} || exit
cat <<EOF |
cloog 0.18.0 tar.gz
gmp 5.1.3 tar.xz
isl 0.11.1 tar.bz2
mpc 1.0.1 tar.gz
mpfr 3.1.2 tar.xz
EOF
while read file vrsn extn
do
(
set -x
tar -xf "../$file-$vrsn.$extn" &&
ln -s "$file-$vrsn" "$file"
)
done
)
mkdir ${GCC_VER}-obj
cd ${GCC_VER}-obj
../${GCC_VER}/configure --prefix=$HOME/gcc/gcc-4.8.2
make -j8 bootstrap
When that finishes, run the install too. Then add $HOME/gcc/gcc-4.8.2/bin (the name you specify in --prefix plus /bin) to your PATH ahead of /usr/bin.
With a decent MacBook Pro with a 5400 rpm spinning disk, it takes an hour or two to compile everything (using the -j8 option to make), and requires multiple gigabytes of disk space while compiling. SSD is nice when doing this (definitely faster)!
GCC 4.9.0 was released on 2014-04-22. I've installed it using basically the same process, but with CLooG 0.18.1 and ISL 0.12.2 (required updates) and GMP 5.1.3 (and 6.0.0a), MPC 1.0.2 (or 1.0.1) and MPFR 3.1.2 on Mac OS X 10.9.2 Mavericks and an Ubuntu 12.04 (Precise Pangolin) derivative. Beware that the gmp-6.0.0a.tar.xz extracts into directory gmp-6.0.0 (not gmp-6.0.0a as you might expect).
Between 2014 and 2017-09-27, I've built GCC versions 4.9.0, 4.9.1, 5.1.0, 5.2.0, 5.3.0, 6.1.0, 6.2.0, 6.3.0, 7.1.0 with only minor variations in the build script shown below for GCC 7.2.0 on macOS v10.12 (Sierra). The versions of the auxiliary libraries changed reasonably often.
macOS Sierra and High Sierra
On 2017-08-14, I used a minor variant of the script above to build GCC 7.2.0 on macOS v10.12 (Sierra) (using Xcode 8 as the bootstrap compiler). One change is that CLooG doesn't seem to be needed any more (I stopped adding it with GCC 6.2.0). This is my current script:
#!/bin/bash
#export DYLD_LIBRARY_PATH=$(clnpath $(dirname $(dirname $(which g++)))/lib:$DYLD_LIBRARY_PATH)
unset DYLD_LIBRARY_PATH
TAR=/opt/gnu/bin/tar
VER_NUM=7.2.0
GCC_VER=gcc-${VER_NUM}
TGT_BASE=/opt/gcc
TGT_DIR=${TGT_BASE}/v${VER_NUM}
CC=/usr/bin/clang
CXX=/usr/bin/clang++
extract() {
echo "Extract
TAR -xf $1
}
if [ ! -d "$GCC_VER" ]
then extract ${GCC_VER}.tar.xz || exit 1
fi
(
cd ${GCC_VER} || exit
nbncl <<EOF |
gmp 6.1.2 tar.lz
isl 0.16.1 tar.bz2
mpc 1.0.3 tar.gz
mpfr 3.1.5 tar.xz
EOF
while read file vrsn extn
do
tarfile="../$file-$vrsn.$extn"
if [ ! -f "$tarfile" ]
then echo "Cannot find $tarfile" >&2; exit 1;
fi
if [ ! -d "$file-$vrsn" ]
then
(
set -x
extract "$tarfile" &&
ln -s "$file-$vrsn" "$file"
) || exit 1
fi
done
)
if [ $? = 0 ]
then
mkdir ${GCC_VER}-obj
cd ${GCC_VER}-obj
../${GCC_VER}/configure --prefix="${TGT_DIR}" \
CC="
{CXX}"
make -j8 bootstrap
fi
Make sure your version of tar supports all four different compressed file formats (.lz, .gz, .xz, .bz2), but since the standard Mac version of tar does that for me, it'll probably work for you too.
On 2017-09-27, I failed to build GCC 7.2.0 on macOS v10.13 (High Sierra) (using Xcode 9 for the bootstrap compiler) using the same script as worked on v10.12 (Sierra). The immediate error was a missing header <stack>; I'll need to track down whether my Xcode 9 installation is correct — or, more accurately, why it isn't correct since <stack> is a standard header in C++98 onwards. There's probably an easy fix; I just haven't spent the time chasing it yet. (Yes, I've run xcode-select --install multiple times; the fact that I had to run it multiple times because of network glitches may be part of the trouble.) (I got GCC 7.2.0 to compile successfully on 2017-12-02; I don't recall what gymnastics — if any — were required to get this to work.)
Time passes; version numbers increase. However, the basic recipe has worked for me with more recent versions of GCC. I have 7.3.0 (installed 2018-01-2), 8.1.0 (installed 2018-05-02), 8.2.0 (installed 2018-07-26), 8.3.0 (installed 2019-03-01) and now 9.1.0 (installed today, 2019-05-03). Each of these versions was built and installed on the current version of macOS at the time, using the current version of Xcode for the bootstrap phase (so using macOS v10.14.4 (Mojave) and Xcode 10.2.1 when building GCC 9.1.0).
this might be a completely novice question but i am currently taking CS1 and my professor asked us to download VSCode and use GCC for the compiler. thing is I'm on a mac and from my understanding macs already come with an integrated compiler called clang (correct me if I'm wrong please). it has been a hassle trying to figure out how to get gcc to work on mac and i was wondering if this was really necessary for the class. i don't know what it means to use different compilers so if it really is necessary - like my professor would notice if I'm not using gcc - then if someone could please explain why that would be much appreciated.
again sorry for the seemingly novice question but this is my first real programming class where i have to type out actual code and use specific software. i took intro to C but all i learned there was different functions and how they work, none of this additional stuff was taught so I'm a bit out of my element here to say the least.
Install GCC on MacOS
learn from above vedio,i use macOX 11.1, install gcc and g++ step:
- "brew install gcc", after that, check install success by: "brew info gcc".
- "cd /usr/local/bin"
- "ls | grep 'gcc'" should see the gcc version you install before, like: gcc-10 or g++-10.
- "ln -s gcc-10 gcc" make a symlink from your gcc version to gcc.
- close terminal, and open again, input "gcc -v", should see it use gcc now.
If still use clang:
- make sure you logout and login again.
- use "where gcc" or "which gcc" to check your gcc symlink create success.
- "echo $PATH", make sure "/usr/local/bin" show before "/usr/bin" on your PATH, if not, change it on your ~/.zshrc or ~/.bashrc
First you need to install the Command-Line tools.
$ xcode-select --install
Then you probably want to install the headers from a specific .pkg in Terminal:
$ open /Library/Developer/CommandLineTools/Packages/macOS_SDK_headers_for_macOS_10.14.pkg
(yours is 10.15, so):
$ open /Library/Developer/CommandLineTools/Packages/macOS_SDK_headers_for_macOS_10.15.pkg
After finishing the installation you should have the headers you need to compile with your GCC.
OSX GCC Installer
Downloading and installing the massive Xcode installer is a huge hassle if you just want GCC and related tools.
The osx-gcc-installer allows you to install the essential compilers from either pre-built binary packages or helps you create your own installer.
You can install just the Xcode Command Line Tools, which includes a GCC Compiler, through Terminal. All you have to do is enter gcc into the Terminal and it should prompt you to install; only took a few minutes for me the other day.
Check out this tutorial for the full instructions: http://railsapps.github.io/xcode-command-line-tools.html
where do I even start with this one. So I just bought a second hand MacBook Air M1 as a cs student, and I want to continue my workflow on this device. I used to code C through a linux subsystem in VSCode and also used RISC-V plugins to study assembly and such. The great thing about linux I suppose is that gcc is prebuilt as I understand it.
But now that I am using macOS for the first time, I get extremely confused when trying to put gcc on this thing. I don't really know too much about how to work the terminal (yet), so I found homebrew on the internet and just copy pasted them there. However, stupid me first ran the install gcc command prior to having homebrew, so now it's just Clang. Tbh I don't really know what clang is, but I would like to use gcc.
So now the issue is, when I run gcc --version, I get the apple clang thing. So I suppose my default compiler is now clang. how do I make it be gcc? I really can't find proper answers on the internet, so I hope you will be able to be of some help.
Also, do any of you recommend any good sources where I can learn like the basics of how to work with the terminal and how to integrate compilers into my IDE's and such. I feel like there are these big gaps in my understanding of programming that I don't know how to fill.