Ich habe meine benutzerdefinierte clang
Plugin mit Hilfe von this tutorial erstellt und ich möchte es automatisch auf meinem Xcode iOS-Projekt ausführen.Wie kann ich zusätzliche Clang-Optionen für das Xcode-Projekt angeben?
Ich brauche folgende zusätzliche Befehle auf clang
laufen,
-Xclang -load \
-Xclang ~/static_analysis/llvm/Debug+Asserts/lib/libPluginExample.so \
-Xclang -plugin -Xclang -example-plugin \
Ich möchte alle anderen Befehle, die von Xcode erzeugt speichern, weil es schwierig ist, zu erstellen und diese Befehle für jedes Xcode-Projekt übergeben. Aus diesem Grund wähle ich clang
Plugin, aber nicht clang
Werkzeug.
Wie kann ich das erreichen?
Oder wie kann ich compiler flags, die von xcode aoutomically generiert wurden, extrahieren, um sie in clang tool zu verwenden? (Becouse, für die korrekte Verwendung von Werkzeug brauche ich alle Verzeichnisse enthalten, um anzugeben, und alle Quellen und alle Frameworks)
Update:
Ich habe hinzugefügt Tsd Befehle im Projekt
Settings -> Build Phases -> Compile Sources (double click on source)
, aber in der Kompilierung gibt es Fehler (Plugin Standardbeispiel libPrintFunctionNames.dylib aus Klirren Quellen):
error: unable to load plugin '/Users/...llvm/Debug+Asserts/lib/libPrintFunctionNames.dylib': 'dlopen(/Users/.../llvm/Debug+Asserts/lib/libPrintFunctionNames.dylib, 9): Symbol not found: __ZN5clang11ASTConsumer21HandleInterestingDeclENS_12DeclGroupRefE Referenced from: /Users/.../llvm/Debug+Asserts/lib/libPrintFunctionNames.dylib Expected in: flat namespace in /Users/.../llvm/Debug+Asserts/lib/libPrintFunctionNames.dylib' Command /Applications/Xcode 2.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang failed with exit code 1
Ich habe versucht, libPrintFunctionNames.a
statt libPrintFunctionNames.dylib
zu verwenden, aber es hilft nicht.
Vielleicht ist die Ursache, dass ich mein Plugin auf getrennte Quelldateien von llvm und clang baute, und in xcode verwende ich andere Version von clang. Ich werde das überprüfen.
Ich habe das gleiche Problem konfrontiert, aber es geschafft, über kleine Xcode Hack zu lösen. http://railsware.com/blog/2014/02/28/creation-and-using-clang-plugin-with-xcode/ Hier ist eine detailliertere Erklärung, wie man es mit Xcode arbeiten kann. – AlexDenisov
Guter Punkt, @AlexDenisov.Eine andere Möglichkeit, Xcode zur Verwendung eines benutzerdefinierten Compilers zu zwingen, ist über xcodebuild. Der Befehl sieht wie folgt aus: xcodebuild [..einige Argumente ..] CC =/pfad/zu/custom/clang CXX =/pfad/zu/custom/clang –