1. ホーム
  2. iphone

[解決済み] all_loadリンカーフラグは何をするのですか?

2022-08-02 05:59:51

質問

Objective-Cのコードをコンパイルするときに、-all_loadフラグが何をするのか、どこにも見当たりません。

Apple にバイナリをアップロードする際にいくつかの問題があります。彼らは私がこのフラグを使用しなかったからだと言いますが、私のコードはフラグなしでもコンパイルできます。

どなたか助けていただけないでしょうか。

ありがとうございます。

どのように解決するのですか?

おそらく、次のテクニカルノートと関係があると思われます。 https://developer.apple.com/library/content/qa/qa1490/_index.html

<ブロッククオート

重要: 64 ビットおよび iPhone OS アプリケーションでは、リンカー バグにより、カテゴリのみを含みクラスを含まないスタティック ライブラリから -ObjC がオブジェクト ファイルをロードできないことがあります。回避策としては、-all_load または -force_load フラグを使用します。-all_load を使用すると、リンカは、Objective-C コードのないアーカイブも含めて、すべてのオブジェクト・ファイルをロードします。-force_load は Xcode 3.2 以降で利用可能です。これは、アーカイブの読み込みをより細かく制御することができます。各 -force_load オプションの後にアーカイブへのパスを指定する必要があり、そのアーカイブ内のすべてのオブジェクト ファイルが読み込まれます。