Jeg har installeret Xcode og kommandolinjeværktøjerne fra Mac Developers-webstedet, som jeg har læst et par gange er en forudsætning. Jeg installerede også MacPorts-programmet. I terminal:
sudo port install gcc48 sudo port select -set gcc mp-gcc48
Alt ovenstående gik glat, indtil jeg skriver:
hash gcc
Når jeg trykker på enter, får jeg følgende fejlmeddelelse:
-bash: hash: gcc: ikke fundet
Jeg er tabt og gør ikke ved, hvordan du fortsætter med at installere gcc med succes på min Mac (som kører Mac OS X 10.9.1).
Meget forpligtet til ethvert forslag og eller alternativer til installation af gcc
Kommentarer
Svar
Det kan være bedre at installere gcc fra hjemmebrygget end Macports.
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" brew doctor brew update brew search gcc
Der findes ca. 6 versioner af gcc fra denne pakkehåndtering. Se http://brew.sh for flere detaljer om homebrew-værktøjerne. Også denne tråd har flere detaljer om gcc og homebrew: Hvordan installerer jeg GCC via Homebrew? Endelig ligner gcc-fejlen i din shell denne tråd: Jeg installerede Xcode, men jeg har stadig ikke ' t har gcc i min terminal
Kommentarer
- Hvorfor ville dette være bedre end macports?
Svar
Der kan være to problemer. Et problem er din vej. Du skal have / opt / local / bin foran / usr / bin i øjeblikket har du / opt / local / bin bag / usr / bin. På grund af dette linker g ++ sandsynligvis stadig til clang.
Det andet problem er, at du bruger kommandoen port select forkert. Porten vælg kommando laver automatisk en g ++ fl ag-link til din specificerede kompilator. I dette tilfælde skal den specificerede kompilator være mp-4.8 og skal –set i stedet for -set. Vejbeskrivelserne findes på denne webside http://dropbit.com/?p=84 .
Svar
Jeg tror ikke, at din port select-kommando gjorde, hvad du forventede. Manualen siger, at select-kommandoen vælger mellem flere versioner af en version port , som jeg mener er ikke din sag her:
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 installationskommandoen til gcc (her version 4.9):
sudo port install gcc49
Du kan kontrollere, at du har installeret gcc-binærfiler:
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 derefter køre gcc med den fulde sti til binærfiler:
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.
Hvis du vil erstatte (midlertidigt eller permanent) clang-complier med gcc, kan du gøre det ved at indstille CC-env var følgende måde for eksempel:
export CC=/opt/local/bin/gcc-mp-4.9 # set GCC as default C compiler
Som en sidebemærkning bedes du venligst bemærk, at for at port select gccVersion
skal fungere, skal du installere 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.
Jeg har ikke kigget på detaljerne i pakken, så jeg er ikke sikker på, om det fungerer mellem clang og portinstalleret gcc eller kun med flere forskellige versioner af portinstallerede gcc-pakker.
Kommentarer
- Kun mellem gcc-pakker og port select skulle have fungeret
- At ' s hvad jeg sagde i første sætning, kompis.
- (MEN du skal installere gcc_select-pakken, hvilket ikke ser ud til at være tilfældet her).
which gcc
give?