私はいくつかの静的ライブラリをリンクするiOSアプリに取り組んでいます。課題は、これらのリンクされたライブラリが、異なる実装で同じメソッド名を定義することです。duplicate symbol definition
奇妙なことに、エラーは発生しません。しかし、当然のことながら、私はメソッドの1つの実装にしかアクセスできなくなります。
より明確にするために、私がlibAとlibBを持っていて、両方ともfunc1()と呼ばれるグローバルCメソッドを定義しているとしましょう。
libAとlibBの両方をリンクし、func1()を呼び出すと、コンパイルの警告なしにlibAまたはlibBの実装に解決されます。ただし、libAのfunc1()とlibBのfunc1()の両方に個別にアクセスできる必要があります。
Cで(シンボルの名前変更を介して)どのように実行できるかを説明する同様のSO投稿がありobjcopy
ますが、残念ながら、私が知ったように、ツールはARMアーキテクチャ(したがってiPhone)では機能しません。
(App Storeに送信するため、ダイナミックリンクはオプションではありません)