Ich versuche ein Projekt unter Mac OS X zu kompilieren, das auf Python verweist. Ich habe Python 2.7 Framework in /Library/Frameworks
. Ich kompiliere für Mac OS X 4, also habe ich auch Python 2.3 in /Developer/SDKs/MacOSX10.4u.sdk/System/Library/Frameworks
. Wenn ich gcc
mit -F/Library/Frameworks
und Blick auf aufrufen, was es tut mit -v
, sehe ich folgendes:GCC Mac OS X Framework-Suchpfad:/System/Library before/Library?
ignoring duplicate directory "/Library/Frameworks"
as it is a non-system directory that duplicates a system directory
<skipped>
#include "..." search starts here:
#include <...> search starts here:
<skipped>
/Developer/SDKs/MacOSX10.4u.sdk/System/Library/Frameworks (framework directory)
/Developer/SDKs/MacOSX10.4u.sdk/Library/Frameworks (framework directory)
D.h. Es ignoriert meine /Library/Frameworks
, weil es ein Duplikat ist (des letzten Pfades, der ein Symlink zu /Library/Frameworks
ist) und findet dann ein eigenes Python 2.3 Framework vor meinem 2.7.
Ich verstehe, wie man das umgehen kann (z. B. -I
mit einem vollständigen Pfad zum Include-Verzeichnis), aber ich bin etwas verwirrt über die Suchreihenfolge. Z.B. der Linker (ld
) seems to search System/Library and Library in different order. Ich habe versucht, Handbücher und Google zu überprüfen, aber es scheint, meine Fähigkeiten zu niedrig sind :)
Ich denke, meine Fragen sind:
- Ist das ein normales Verhalten und warum
gcc
sucht in dieser Reihenfolge, währendld
sucht anders? - Gibt es irgendwelche Framework-savvy Methoden, um dies zu lösen, oder muss ich die einfache alte
-I
Flagge verwenden?
Danke, das ist eine Lösung, es nicht zu mir kommen ich einen Symlink verwenden :) (Leider verlor ich die Kontrolle über diese temporäre Konto, also kann ich die Antwort nicht als Lösung markieren.) –