Nainstaloval jsem Xcode a nástroje příkazového řádku z webu Mac Developers, který jsem několikrát četl, je předpokladem. Také jsem nainstaloval program MacPorts. V terminálu:
sudo port install gcc48 sudo port select -set gcc mp-gcc48
Všechno výše uvedené proběhlo hladce, dokud nezadám:
hash gcc
Když stisknu klávesu Enter, zobrazí se následující chybová zpráva:
-bash: hash: gcc: not found
Jsem ztracen a ne vědět, jak postupovat při úspěšné instalaci gcc na můj Mac (na kterém běží Mac OS X 10.9.1).
Velmi zavázán jakýmikoli návrhy nebo alternativami k instalaci gcc
Komentáře
Odpověď
Instalace gcc z homebrewu by vám mohla být lepší než Macports.
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" brew doctor brew update brew search gcc
Od tohoto správce balíčků je k dispozici přibližně 6 verzí gcc. Viz http://brew.sh pro další podrobnosti o nástrojích homebrew. Také toto vlákno obsahuje více podrobností o gcc a homebrew: Jak nainstaluji GCC přes Homebrew? A konečně, chyba gcc ve vašem shellu je podobná tomuto vláknu: Nainstaloval jsem Xcode, ale stále ' nemám v terminálu gcc
Komentáře
- Proč by to bylo lepší než macports?
Odpověď
Mohou to být dva problémy. Jedním problémem je vaše cesta. Před / usr musíte mít / opt / local / bin / bin v současné době máte / opt / local / bin za / usr / bin. Z tohoto důvodu g ++ pravděpodobně stále odkazuje na clang.
Dalším problémem je, že používáte nesprávný příkaz port select. příkaz select automaticky vytvoří fl ++ g ++ ag odkaz na zadaný překladač. V tomto případě by zadaný kompilátor měl být mp-4,8 a měl by být –set místo -set. Pokyny jsou na této webové stránce http://dropbit.com/?p=84 .
Odpovědět
Nemyslím si, že váš příkaz select port udělal to, co jste očekávali. V manuálu se uvádí, že příkaz select vybírá mezi několika verzemi verzí portu , který podle mého názoru není váš případ zde:
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.
Po úspěšném spuštění instalačního příkazu pro gcc (zde verze 4.9):
sudo port install gcc49
Můžete ověřit, že máte nainstalované binární soubory gcc:
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
Poté můžete spustit gcc s úplnou cestou k binární soubory:
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.
Chcete-li (dočasně nebo trvale) nahradit clang complier pomocí gcc, můžete to udělat nastavením CC env var následující způsob například:
export CC=/opt/local/bin/gcc-mp-4.9 # set GCC as default C compiler
Jako vedlejší poznámku prosím nezapomeňte, že aby port select gccVersion
fungoval, budete muset nainstalovat 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.
Nezajímal jsem se o podrobnosti balíčku, takže si nejsem jistý, zda to bude fungovat mezi clang a portem nainstalovaným gcc, nebo pouze s několika různými verzemi portů nainstalovaných balíků gcc.
Komentáře
- Pouze mezi balíčky gcc a výběrem portu mělo fungovat
- To ' s to, co jsem uvedl v první větě, kámo.
- (ALE je třeba nainstalovat balíček gcc_select, což se v tomto případě nezdá).
which gcc
dát?