Zainstalowałem Xcode i narzędzia wiersza poleceń ze strony Mac Developers, które przeczytałem kilka razy, jest warunkiem wstępnym. Zainstalowałem też program MacPorts. W terminalu:

sudo port install gcc48 sudo port select -set gcc mp-gcc48 

Wszystko powyżej poszło gładko, dopóki nie napiszę:

hash gcc

Kiedy naciskam Enter, otrzymuję następujący komunikat o błędzie:

-bash: hash: gcc: not found

Nie wiem wiem, jak pomyślnie zainstalować gcc na moim Macu (na którym działa Mac OS X 10.9.1).

Jestem bardzo zobowiązany do wszelkich sugestii i / lub alternatyw dla instalacji gcc

Komentarze

  • Czy jest jakiś powód, dla którego potrzebujesz konkretnie gcc? clang używa tej samej składni, kompiluje się szybciej i generuje szybszy kod. Główne błędy zostały usunięte w ciągu ostatnich kilku lat.
  • Pomogłaby w tym edycja. Jeśli masz pakiet, który chcesz skompilować, wymień go. Jeśli chcesz tylko wiedzieć, jak skompilować gcc dla przyjemności, to ' też jest w porządku, ale odpowiedź jest inna.
  • Co robi which gcc dać?
  • Czy sprawdziłeś zmienną ścieżki w swoim ~ / .profile? Powinien wskazywać na katalog, w którym znajduje się gcc.
  • Co robi; s -l / opt / local / bin / gcc * show?

Odpowiedz

Lepiej byłoby zainstalować gcc z homebrew niż Macports.

ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" brew doctor brew update brew search gcc 

W tym menedżerze pakietów dostępnych jest około 6 wersji gcc. Zobacz http://brew.sh , aby uzyskać więcej informacji na temat narzędzi homebrew. Również ten wątek zawiera więcej szczegółów na temat gcc i homebrew: Jak zainstalować GCC przez Homebrew? Na koniec błąd gcc w Twojej powłoce jest podobny do tego wątku: Zainstalowałem Xcode, ale nadal nie ' nie mam gcc w moim terminalu

Komentarze

  • Dlaczego miałoby to być lepsze niż macports?

Odpowiedź

Mogą to być dwa problemy. Jeden problem to Twoja ścieżka. Musisz mieć / opt / local / bin przed / usr / bin obecnie masz / opt / local / bin za / usr / bin. Z tego powodu g ++ prawdopodobnie nadal łączy się z clang.

Innym problemem jest to, że używasz nieprawidłowego polecenia wyboru portu. Port polecenie select automatycznie tworzy g ++ fl ag link do określonego kompilatora. W tym przypadku podanym kompilatorem powinien być mp-4.8 i –set zamiast -set. Wskazówki znajdują się na tej stronie internetowej http://dropbit.com/?p=84 .

Odpowiedź

Nie sądzę, aby polecenie wyboru portu zrobiło to, czego się spodziewałeś. W instrukcji podano, że polecenie wyboru wybiera między wieloma wersjami wersjonowany port , który moim zdaniem jest , a nie tutaj:

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 pomyślnym uruchomieniu polecenia instalacji gcc (tutaj wersja 4.9):

sudo port install gcc49

Możesz sprawdzić, czy masz zainstalowane pliki binarne 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 

Następnie możesz uruchomić gcc z pełną ścieżką do pliki binarne:

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. 

Jeśli chcesz zamienić (tymczasowo lub na stałe) clang Complier przez gcc, możesz to zrobić ustawiając CC env var w następujący sposób sposób na przykład:

export CC=/opt/local/bin/gcc-mp-4.9 # set GCC as default C compiler

Na marginesie, proszę pamiętaj, że aby port select gccVersion działał, musisz zainstalować 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. 

Nie przejrzałem szczegółów pakietu, więc nie jestem pewien, czy zadziałaby między clang i port zainstalowanym gcc, czy tylko z kilkoma różnymi wersjami pakietów gcc zainstalowanych na porcie.

Komentarze

  • Tylko pomiędzy pakietami gcc a wyborem portu powinno działać
  • To ' s co napisałem w pierwszym zdaniu, kolego.
  • (ALE musisz zainstalować pakiet gcc_select, co nie wydaje się mieć miejsca w tym przypadku).

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *