のために、私はtvOSのために(それが重要だ場合は、ターゲットがフレームワークです)プロジェクトをビルドすることだし、リンカからエラーを取得:LD:tvOSのために構築したが、iOSのために構築されたオブジェクト・ファイルにリンクする、アーキテクチャarm64
LD:私は
OBJECTS_FILE_DIR_normal
でotool -l *.o
を走った.oファイルのいずれかが、実際のiOSの代わりtvOSのために構築されてい考え出しアーキテクチャarm64
ため、tvOSのために構築したが、iOSのために構築されたオブジェクト・ファイルにリンクします。
問題は、対応するソースファイル(* .mmまたは* .cpp)が存在しないことです。 <ProjectName>_lto.o
と呼ばれ、ビルドログにそのファイルのコンパイラ呼び出しが表示されません。
-Xlinker -object_path_lto -Xlinker /Full/path/to/<ProjectName>.build/Debug-appletvos/tvOS.build/Objects-normal/arm64/<ProjectName>_lto.o
LLVM_LTO
ビルド設定が明示的に設定されていませんが、NO
がデフォルト:リンカのコマンドラインで一度だけ表示されます。 NO
に明示的に設定しても効果はありません。
私はXcode 8.3.2(8E2002)を使用しています。
私の質問は:なぜこのオブジェクトファイルが作成され、間違ったターゲットプラットフォームで作成されたのですか?