web-dev-qa-db-ja.com

-all_loadリンカーフラグは何をしますか?

Objective-Cコードをコンパイルするときに、-all_loadフラグが何をするかを見つけることができません。

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

誰かが私を助けることができますか?

ありがとう

121
Guy Ephraim

おそらくこのテクニカルノートに関連しています 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オプションの後にアーカイブへのパスを続ける必要があり、そのアーカイブ内のすべてのオブジェクトファイルがロードされます。

142
Shaji