Frage

Ich habe Clint Harris' Tutorial verwendet einzurichten Code-Sharing zwischen den Projekten, und alles funktioniert genauso wie auf meinem Computer erwartet. Aber auf meine Mitarbeiter der Maschine, so scheint es der Compiler nicht die Header-Datei aus dem statischen Bibliothek-Projekt nicht finden, wenn er baut.

Meine Mitarbeiter bekamen mein Projekt durch eine Git-Repository zu klonen. Wir haben durch alle relevanten Build Flags gegangen und XCode Einstellungen n-mal, aber das Projekt ablehnt, einfach auf seiner Maschine zu kompilieren.

Das ist, was ich meine Mitarbeiter gebeten, zu tun, meist kopiert und aus dem Tutorial eingefügt:

  1. Stellen Sie sicher, dass es in dem vollständigen Pfad zu den Projekten Verzeichnis NO Leerzeichen ist.
  2. Innerhalb des Projektverzeichnis, erstellen Sie einen anderen Ordner namens "Build_Output".
  3. In XCode unter „XCode> Einstellungen‚wählen Sie die‘Gebäude“ und stellen ‚Platz Bauen Projekte in‘ auf ‚Customized Lage‘ und den Pfad zu dem Common-Build-Verzeichnis angeben, die Sie erstellt.
  4. Set „Platz Intermediate-Build-Dateien in“ auf „Mit Build-Produkten.“
  5. Wählen Sie die „Source Trees“ Registerkarte und eine neue Source-Tree Variable erstellen, indem Sie auf die Schaltfläche „+“ und in den Spalten zu füllen. In den beiden „Einstellen Name“ und „Anzeigename“, setzen [Der Name des gemeinsamen Projektes, das die statische Bibliothek erstellt]. In Pfad, setzen Sie den vollständigen Pfad zu dem Ordner Framework.

Nach diesen Schritten werden das Projekt, das die statische Bibliothek verwendet, soll das gleiche auf seiner Maschine als auf meinem kompilieren. Aber es funktioniert nicht. Grundsätzlich ist der Fehler, den er erhält, ist:

error: TheFrameworkHeader.h: No such file or directory

und dann eine Reihe weiterer Fehler, die durch die fehlende Header verursacht.

Jede Strategien zur Fehlersuche das? Oder jemand, der eine ähnliche Erfahrung hatte und könnte etwas hart verdientes Wissen teilen? Fehlt etwas von den Anweisungen, die ich zusammengestellt habe? Muss ich die Rollen der Header in den Copy-Header bauen Phase setzen, wenn eine statische Bibliothek kompiliert?

War es hilfreich?

Lösung

Trotz einiger hilfreichen Ratschläge, ich habe nie diese eine herausgefunden, aber hier ist eine kleine Info für alle, in einer ähnlichen Situation. Ich habe die Bibliothek und abhängig Projekt ein originelles Projekt in zwei aufzuteilen. Zunächst waren die Bibliothek und Anwendung nur zwei Ziele innerhalb desselben Projekts. Später zog ich die App auf ein separates Projekt. Alles schien zu arbeiten, und ich schob beiden Projekte auf Remote-git Repositories. Wenn diese auf anderen Rechnern geklont wurden, jedoch wurde die Bibliothek Header nicht gefunden.

Später habe ich feststellen, dass der gleiche Fehler aufgetreten ist, wenn ich die Projekte auf dem ursprünglichen Computer geklont. Nach viel Kampf, steckte ich es ein unheimlich Detail unten: der Name des Ordners abhängig Projekts (. Das heißt, das Projekt mit der Anwendung, nicht die Bibliothek) nicht den Namen der .xcodeproject Paket, nicht die Anwendungskennung, aber der Name der Übergeordneten Ordner . Sobald ich, dass, funktioniert alles ändern. Wenn ich es in den ursprünglichen Namen wieder ändern (auf einem beliebigen Computer), wieder die Header werden nicht gefunden.

Wenn jemand einen Einblick auf das hat, bitte eine Antwort schreiben!

EDIT: Da ich diese geschrieben, trat das gleiche Problem mit einem anderen Projekt, und wieder, nur die Ordner umbenennen, die die .xcodeproject Ordner das Problem behoben enthalten

.

Andere Tipps

Ich glaube nicht, dass Git ist, ich denke, es ist Xcode. Ich habe ein sehr ähnliches Problem hier, wo Xcode / xcodebuild einen Pfad falsch umfassen löst (es eine einfache Herstellung.) Mit den exakt gleichen Bibliotheksprojekt und xcconfig Dateien (saubere Kasse aus dem SVN Repo), aber einem anderen Ordner enthält - es funktioniert. Also, Danke für die Lösung und nicht Git Schuld mehr; -)

Ich vergesse oft dies zu überprüfen: Sind Sie sicher, dass die fehlende Datei (dh TheFrameWorkHeader.h“im Git Repository ist es gut sein kann, dass Ihre Build-Einstellungen korrekt sind, aber die Datei erhalten hat irgendwie nicht hinzugefügt? git richtig.

Wenn Sie Probleme beim Bau auf einer bestimmten Maschine haben sollten, dann ist das Problem wahrscheinlich eine Maschine oder Benutzereinstellung. So zum Beispiel eines Umgebungsvariable (vielleicht INCLUDE_PATH oder einer seiner Verwandten - XCode nutzt GCC). Möglicherweise haben Sie ein „“ in eine dieser Variablen.

Der beste Weg, dies zu beheben wäre, den benötigten Ordnerpfad zum -I-Schalter in dem Build-Skript hinzuzufügen.

Überprüfen Sie, dass die „Suche Paths-> User Header-Suchpfade“ build-Einstellung (für alle Konfigurationen) verweist auf das Verzeichnis der gemeinsam genutzten Xcode-Projekt enthält (Sie die neue Source-Tree-Variable verwenden Sie erstellt).

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top