Ich baue ein Projekt (das Ziel ist ein Rahmen, wenn es wichtig ist) für tvOS und bekommt die Fehler aus dem Linker:ld: für tvOS Aufbau, aber die Verknüpfung in Objektdatei für iOS gebaut, für Architektur arm64
ld: für tvOS Aufbau, aber die Verknüpfung in Objektdatei für iOS gebaut, für Architektur arm64
ich otool -l *.o
in OBJECTS_FILE_DIR_normal
lief und dachte, einer von .o Dateien aus eigentlich für iOS statt tvOS gebaut wird.
Das Problem ist, dass es keine entsprechende Quelldatei (* .mm oder * .cpp) für diese .o gibt. Es heißt <ProjectName>_lto.o
und ich sehe keine Compiler-Aufrufe für diese Datei im Build-Protokoll. Es erscheint nur einmal in Linker-Befehlszeile:
-Xlinker -object_path_lto -Xlinker /Full/path/to/<ProjectName>.build/Debug-appletvos/tvOS.build/Objects-normal/arm64/<ProjectName>_lto.o
LLVM_LTO
Buildeinstellungen nicht explizit festgelegt werden, aber es standardmäßig NO
. Die Einstellung auf NO
hilft ausdrücklich nicht.
Ich verwende Xcode 8.3.2 (8E2002).
Also meine Frage ist: Warum ist diese Objektdatei überhaupt erstellt und warum ist es für falsche Zielplattform erstellt?