Wie legen Sie fest, welches GCC für MacPorts verwendet werden soll?

11906
hpy

Ich habe GCC 4.4.3 kompiliert und in / usr / local / bin installiert. Wenn ich jedoch einen Port über MacPorts 1.8.2 installiere, wird in der ausführlichen Ausgabe angegeben, dass MacPorts /usr/bin/gcc-4.2 verwendet:

Überprüfung auf gcc ... /usr/bin/gcc-4.2

Wie kann ich MacPorts dazu bringen, mein eigenes GCC 4.4.3 zu finden? Hier ist mein bestehender Pfad:

/opt/local/bin:/opt/local/sbin:/usr/local/bin:/usr/local/lib:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin 

Ich verwende Mac OS X 10.6.2 Snow Leopard.

5

3 Antworten auf die Frage

7
raimue

MacPorts verwendet, wo immer möglich, von Apple gelieferte Compiler, da diese für die Plattform stark gepatcht sind. Sie erlauben beispielsweise das Erstellen mehrerer Architekturen durch Angabe von -arch-Flags, was mit FSF gcc nicht möglich ist.

Wenn Sie die Symlinks in / usr / bin / cc ändern, versucht MacPorts weiterhin, Flags zu verwenden, die nur von der Apple-Version verstanden werden. Dies kann es unmöglich machen, etwas mit MacPorts zu kompilieren.

Vertrauen Sie einfach den MacPorts-Entwicklern, dass die Verwendung von von Apple bereitgestellten Compilern der beste Weg ist.

7
anddam

Stellen Sie die configure.compiler- Variable entsprechend in der Portdatei ein:

configure.compiler macports-gcc-4.3 

oder hängen Sie configure.compiler = macports-gcc-4.3 an Ihren Befehl an.

vgl. diese Wiki-Seite .

Ist das immer noch bekannt, dass es Probleme verursacht wie in der anderen Antwort? Vielen Dank! hpy vor 13 Jahren 0
Ich konnte nicht herausfinden, was die Probleme waren. Das erste Ergebnis von Google für "gcc 4.4.3 - Zeichenfolgeproblem mit Nulllänge" ist die gleiche Superuser-Frage. anddam vor 13 Jahren 2
2
Ben Hocking

Erste Antwort: Nicht! Nach meiner Erfahrung wird GCC 4.4.3 auf Snow Leopard nicht richtig funktionieren. Dies führt zu Problemen mit Zeichenfolgen mit der Länge Null.

Zweite Antwort: Bearbeiten Sie Ihre symbolischen Links in / usr / bin, um auf das 4.4-Zeug hinzuweisen. Hier ist ein Skript, das ich dazu geschrieben habe:

rm /usr/bin/c++  ln -s /usr/bin/c++-$ /usr/bin/c++ rm /usr/bin/cc ln -s /usr/bin/cc-$ /usr/bin/cc rm /usr/bin/cpp ln -s /usr/bin/cpp-$ /usr/bin/cpp rm /usr/bin/g++ ln -s /usr/bin/g++-$ /usr/bin/g++ rm /usr/bin/gcc ln -s /usr/bin/gcc-$ /usr/bin/gcc rm /usr/bin/gcov ln -s /usr/bin/gcov-$ /usr/bin/gcov 

Ich habe es chgCver genannt, also würde ich meinen Compiler auf 4.4 ändern chgCver 4.4. Bevor Sie dies ausführen, müssen Sie natürlich auch sicherstellen, dass z. B. c ++ - 4,4 an den richtigen Ort (wahrscheinlich /opt/local/bin/gcc-mp-4.4) zeigt usw. Ich kann Ihnen weitere Einzelheiten mitteilen, wenn Sie mein Verhalten ignorieren möchten erste und dritte antwort.

Dritte Antwort: Nicht! (Siehe erste Antwort.)

Wusste nicht, dass GCC 4.4.3 dieses Problem hatte, danke! hpy vor 14 Jahren 0
Keine Notwendigkeit, verwenden Sie einfach `gcc_select`. Adam Rosenfield vor 13 Jahren 3
Wenn wir über die Verwendung von MacPorts sprechen, gibt es den "gcc_select" -Port, der die gleiche Aufgabe erfüllt und noch ein bisschen mehr. anddam vor 13 Jahren 3