Statische Bibliothek öffentliche-Header nicht kopiert Build/Ordner Produkte

Ich habe 2 Projekte, das erstellen einer statischen Bibliothek wird jeden, wie auch ein anderes Projekt verwendet sowohl statische Bibliotheken.

Einem der beiden statischen Bibliotheken baut gut. Die andere nicht und der Grund dafür ist, dass seiner öffentlichen Header nicht kopiert den Ordner vor der benutzerdefinierten shell-script ausgeführt wird.

Hier ist eine demonstration dessen, was passiert:

SampleA (die funktioniert)

Compile MyClass1.cpp ...
Compile MyClass2.cpp ...
Libtool /Users/user/Library/Developer/XCode/DerivedData/.....
Libtool /Users/user/Library/Developer/XCode/DerivedData/.....
Libtool /Users/user/Library/Developer/XCode/DerivedData/.....
Create universal binary libSampleA.a ...
Copy SampleA.h ...in /Users/user/....
Copy MyClass1.h ...in /Users/user/....
Copy MyClass2.h ...in /Users/user/....
Run custom shell script 'Prepare Framework'
Stripping libSampleA.a 
--- Build complete

SampleB (die, die NICHT arbeiten)

Compile OtherClass1.cpp ...
Compile OtherClass2.cpp ...
Libtool /Users/user/Library/Developer/XCode/DerivedData/.....
Libtool /Users/user/Library/Developer/XCode/DerivedData/.....
Libtool /Users/user/Library/Developer/XCode/DerivedData/.....
Create universal binary libSampleB.a ...
//>>>>> NO HEADER FILES ARE COPIED <<<<<<
Run custom shell script 'Prepare Framework'
--- Build fails (header folder does not exist) 

Mein Aktuelles setup ist ein Arbeitsbereich, der alle 3 Projekte, aber ich habe 1 Projekt mit einem verschachtelten Projekt für jede statische Bibliothek als gut. Habe ich ein Problem bleibt das gleiche in beiden setups.

Mehr info

  • Ich habe versucht, praktisch jede Anleitung, Tipp und Rat, den ich online gefunden für diese Arbeit.
  • Die Einstellungen an beiden Projekten, soweit ich das beurteilen kann, identisch sind. Der Vergleich der beiden Projekt-Dateien war nicht sehr effektiv. Ich habe auch noch nicht im Vergleich alle Einstellungen der beiden Projekte eins nach dem anderen, um sicherzustellen, dass Sie die gleichen (noch) nicht.
  • Das problem ist das gleiche in beiden Debug und Archiv baut (ich weiß, dass die Archivierung verhält sich anders)
  • Ich habe "$(BUILD_ROOT)/../IntermediateBuildFilesPath/UninstalledProducts/include" - und/oder "$(PROJECT_TEMP_DIR)/../UninstalledProducts/include"
  • Ich habe die Header zu den "Build-Phasen > Kopieren von Header > Öffentliche" Abschnitt - hat nicht funktioniert
  • Die ich gelöscht habe "Build-Phasen" > "Copy Headers" phase vollständig, wie Apple empfehlen und fügte hinzu, die Header zu den Kopieren von Dateien phase - hat nicht funktioniert
  • Ich habe eine neue Gruppe in der statischen lib-Projekt und fügte hinzu, alle Ihre Header, Einstellung, kein Ziel zu "Add to Targets" - hat nicht funktioniert
  • Ich habe XCode beenden und wieder versucht, oder sogar den mac neu starten - hat nicht funktioniert

Ein Unterschied zwischen den beiden Bibliotheken ist, dass SampleB (die, die nicht bauen) enthält verschiedene Header von SampleA. Es gibt keine compiler-oder linker-Fehler, nur der Fehler am Ende der build, den ich beschreiben.

Quellen

Einige der Quellen habe ich verwendet für die Erstellung der Bibliothek als auch für den Versuch, das Problem zu lösen:

So, weißt du, was löst den Header kopiert oder nicht kopiert, während das bauen?

Ich würde vermuten, dass, selbst wenn eine header-Datei wird Hinzugefügt, um die Kopie Header phase oder das Kopieren von Dateien phase, zumindest diese sollten kopiert werden. Aber wie es sich herausstellt, ist dies nicht das, was passiert ist, zumindest in meinem Fall.

  • Der einzige link, den Sie Folgen sollten, ist die offizielle von Apple. Die weiteren Empfehlungen aus den anderen links sind entweder veraltet oder falsch sind.
InformationsquelleAutor dimitrios | 2014-02-12
Schreibe einen Kommentar