Ik heb Xcode geïnstalleerd en de opdrachtregelprogrammas van de Mac Developers-website, die ik een paar keer heb gelezen, is een vereiste. Ik heb ook het MacPorts-programma geïnstalleerd. In terminal:
sudo port install gcc48 sudo port select -set gcc mp-gcc48
Al het bovenstaande verliep soepel totdat ik typ:
hash gcc
Als ik op enter druk, krijg ik de volgende foutmelding:
-bash: hash: gcc: not found
Ik weet niet meer weet hoe ik verder moet gaan met het succesvol installeren van gcc op mijn Mac (waarop Mac OS X 10.9.1 draait).
Zeer verplicht tot eventuele suggesties en / of alternatieven voor het installeren van de gcc
Opmerkingen
Antwoord
Misschien is het beter om gcc vanaf homebrew te installeren dan Macports.
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" brew doctor brew update brew search gcc
Er “zijn ongeveer 6 versies van gcc beschikbaar via deze pakketbeheerder. Zie http://brew.sh voor meer details over de homebrew-tools. Ook deze thread heeft meer details over gcc en homebrew: Hoe installeer ik GCC via Homebrew? Ten slotte is de gcc-fout in uw shell vergelijkbaar met deze thread: Ik heb Xcode geïnstalleerd, maar ik heb nog steeds geen ‘ ik heb geen gcc in mijn terminal
Reacties
- Waarom zou dit beter zijn dan macports?
Antwoord
Er kunnen twee problemen zijn. Een probleem is uw pad. U moet / opt / local / bin voor / usr hebben / bin heb je momenteel / opt / local / bin achter / usr / bin. Hierdoor linkt g ++ waarschijnlijk nog steeds naar clang.
Het andere probleem is dat je het poortselectiecommando verkeerd gebruikt. select commando maakt automatisch een g ++ fl ag link naar uw opgegeven compiler. In dit geval zou de opgegeven compiler mp-4.8 moeten zijn en –set in plaats van -set. De instructies staan op deze webpagina http://dropbit.com/?p=84 .
Antwoord
Ik denk niet dat je poortselectie-commando deed wat je verwachtte. In de handleiding staat dat het select-commando selecteert tussen meerdere versies van een poort met versiebeheer , die naar mijn mening is en niet uw geval hier:
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.
Nadat u het installatiecommando voor gcc succesvol hebt uitgevoerd (hier versie 4.9):
sudo port install gcc49
U kunt controleren of u “de gcc-binaries heeft geïnstalleerd:
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
Vervolgens kunt u gcc uitvoeren met het volledige pad naar de binaries:
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.
Als je de clang complier (tijdelijk of permanent) wilt vervangen door gcc, kun je dit doen door de CC env var als volgt in te stellen manier bijvoorbeeld:
export CC=/opt/local/bin/gcc-mp-4.9 # set GCC as default C compiler
Als een kanttekening, gelieve merk op dat om port select gccVersion
te laten werken, u 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.
Ik heb “niet gekeken naar de details van het pakket, dus ik” weet niet zeker of het zou werken tussen clang en gcc geïnstalleerde port of alleen met verschillende versies van gcc-pakketten die op de port zijn geïnstalleerd.
Reacties
- Alleen tussen gcc-pakketten en poortselectie had moeten werken
- Dat ‘ s wat ik in de eerste zin zei, maat.
- (MAAR je moet het pakket gcc_select installeren, wat hier niet het geval lijkt te zijn).
which gcc
give?