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

  • Is er een reden waarom je gcc specifiek nodig hebt? clang gebruikt dezelfde syntaxis, compileert sneller en genereert snellere code. De belangrijkste bugs zijn de afgelopen jaren verholpen.
  • Een bewerking zou hierbij helpen. Als u een pakket heeft dat u moet compileren, vermeld dat dan. Als je gewoon wilt weten hoe je gcc voor de lol kunt laten compileren, dat ‘ is ook prima, maar het antwoord op beide is anders.
  • Wat doet which gcc give?
  • Heb je je padvariabele in je ~ / .profile gecontroleerd? Het moet verwijzen naar de directory waarin gcc zich bevindt.
  • Wat laat; s -l / opt / local / bin / gcc * zien?

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).

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *