0

特定の iOS アプリ プロジェクトを静的フレームワークにリンクすると、Xcode は単一の静的フレームワーク ファイル内から重複シンボル エラーを報告します (ただし、重複はそのフレームワーク内の別のオブジェクト ファイルからソースとして報告されます)。

duplicate symbol _kMGLMinimalViewport in:
/Users/alex/Documents/Code/MyProject/ThirdParty/MetalGL-0.9.0/MetalGL/MetalGL.framework/MetalGL(MGLContext.o)
/Users/alex/Documents/Code/MyProject/ThirdParty/MetalGL-0.9.0/MetalGL/MetalGL.framework/MetalGL(MGLRenderPipelineState.o)

重複として報告されているシンボルは、フレームワークの_kMGLMinimalViewportソース コード内のヘッダー ファイル内で宣言および定義されている構造体です。

MGLPixelRect kMGLMinimalViewport = (MGLPixelRect){0, 0, 0, 0};

次に#import、フレームワーク ソース内のいくつかの実装ファイルに編集されます。これには、.m他のファイル内のファイルとインライン関数の両方が含まれ.hます。シンボルはフレームワーク内で厳密に内部的に使用され、宣言は可視ヘッダー ファイルの一部として最終的なアプリ プロジェクトに表示されることさえありません。

紛らわしいことに、このフレームワークを他のアプリ プロジェクトにリンクする場合、この重複エラーは表示されませんが、この特定のアプリ プロジェクトがこのフレームワークをリンクするときにエラーを報告する理由がわかりません。

4

0 に答える 0