Jag har installerat Xcode och kommandoradsverktygen från Mac Developers webbplats, vilket jag har läst några gånger är en förutsättning. Jag installerade också MacPorts-programmet. I terminal:
sudo port install gcc48 sudo port select -set gcc mp-gcc48
Allt ovanstående gick smidigt tills jag skriver:
hash gcc
När jag trycker på enter får jag följande felmeddelande:
-bash: hash: gcc: hittades inte
Jag är förlorad och inte vet hur man fortsätter för att framgångsrikt installera gcc på min Mac (som kör Mac OS X 10.9.1).
Mycket skyldig till alla förslag och alternativ till installation av gcc
Kommentarer
Svar
Det kan vara bättre att installera gcc från homebrew än Macports.
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" brew doctor brew update brew search gcc
Det finns cirka 6 versioner av gcc tillgängliga från den här pakethanteraren. Se http://brew.sh för mer information om homebrew-verktygen. Även denna tråd har mer information om gcc och homebrew: Hur installerar jag GCC via Homebrew? Slutligen liknar gcc-felet i skalet den här tråden: Jag installerade Xcode men jag har fortfarande inte ' t har gcc i min terminal
Kommentarer
- Varför skulle det vara bättre än macports?
Svar
Deras kan vara två problem. Ett problem är din väg. Du måste ha / opt / local / bin framför / usr / bin för närvarande har du / opt / local / bin bakom / usr / bin. På grund av detta länkar l ++ troligen fortfarande till clang.
Det andra problemet är att du använder kommandot port select fel. Porten välj kommando gör automatiskt en g ++ fl ag-länk till din angivna kompilator. I det här fallet ska den angivna kompilatorn vara mp-4.8 och bör vara –set istället för -set. Anvisningarna finns på denna webbsida http://dropbit.com/?p=84 .
Svar
Jag tror inte att ditt port select-kommando gjorde vad du förväntade dig. I manualen anges att select-kommandot väljer mellan flera versioner av en versionad port , som jag tror är inte ditt fall här:
pejvan$ port help select Usage: select --list --set --show --summary <arguments> Select between multiple versions of a versioned port This allows you to choose which version, among several installed versions of a port, is to be considered primary. What this means is which version becomes the one most would consider the default, e.g. the one run without specifying any version.
När du har kört installationskommandot för gcc (här version 4.9):
sudo port install gcc49
Du kan verifiera att du har installerat gcc-binärer:
pejvan$ ls -l /opt/local/bin/gcc* -rwxr-xr-x 2 root admin 42912 3 Jun 03:44 /opt/local/bin/gcc-ar-mp-4.9 -rwxr-xr-x 3 root admin 1082788 3 Jun 03:44 /opt/local/bin/gcc-mp-4.9 -rwxr-xr-x 2 root admin 42992 3 Jun 03:44 /opt/local/bin/gcc-nm-mp-4.9 -rwxr-xr-x 2 root admin 43000 3 Jun 03:44 /opt/local/bin/gcc-ranlib-mp-4.9
Du kan sedan köra gcc med hela sökvägen till binärfilerna:
pejvan$ gcc-mp-4.9 --version gcc-mp-4.9 (MacPorts gcc49 4.9-20140416_2) 4.9.0 20140416 (prerelease) Copyright (C) 2014 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
Om du vill byta ut (tillfälligt eller permanent) clang complier med gcc, kan du göra det genom att ställa in CC env var följande sätt till exempel:
export CC=/opt/local/bin/gcc-mp-4.9 # set GCC as default C compiler
Som en sidnot, vänligen Observera att för att port select gccVersion
ska fungera måste du installera gcc_select
:
pejvan$ port info gcc_select gcc_select @0.1_8 (sysutils) Description: gcc_select installs files that allow "port select" to switch the default version of gcc. It symlinks the standard compiler executables in the MacPorts prefix to the selected version.
Jag har inte tittat på detaljerna i paketet, så jag är inte säker på om det skulle fungera mellan clang och portinstallerad gcc eller bara med flera olika versioner av portinstallerade gcc-paket.
Kommentarer
- Endast mellan gcc-paket och port select borde ha fungerat
- Att ' s vad jag sa i första meningen, kompis.
- (MEN du måste installera paketet gcc_select, vilket inte verkar vara fallet här).
which gcc
ge?