2011-08-03 8 views
4

私は2つのサードパーティ静的ライブラリを含むiPadアプリを開発しています。これら2つのライブラリ内のオブジェクトファイルの名前は同じです。アプリを構築する上で、私はOBJECTファイルに同じ名前の静的ライブラリを含めるにはどうすればいいですか?

「アップルマッハ-O(ID)エラー」ので、これらの2つのライブラリ内のオブジェクトファイルの同じ名前の

を取得しています。 この問題を解決するには?

エラーは、次のようになります。

ld: duplicate symbol _T_strcpy in /Users/indiait-supportservices/Desktop/untitled folder/Universal/lib/simulator/libSecurIDLib.a(mem.o) and /Users/indiait-supportservices/Library/Developer/Xcode/DerivedData/ReceiverForiOS-aqpprpcivvjjadbsutqqmtjsoczk/Build/Intermediates/ReceiverForiOS.build/Debug-iphonesimulator/myApp iPad.build/Objects-normal/i386/pdcrypte2.o for architecture i386 

collect2: ld returned 1 exit status 

Command /Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin/llvm-g++-4.2 

failed with exit code 1. 
+0

重複するシンボルのように見えますが、重複するオブジェクトファイル名ではありません。 –

+0

ダニエル:はいダニエルその重複するシンボル。これを解決する方法を教えてもらえますか? – Micheal

+0

解決を待っています。誰かがいくつかのsuggestionsを持っていますか? – Micheal

答えて

0

あなたは1つのアーキテクチャのために構築されていますか?複数のアーキテクチャを構築しているときに-all_loadリンカフラグを使用すると、リンカは複数のアーキテクチャに対して定義されているシンボルを無視できなくなります。テストとして、armv6だけをビルドして、エラーが消えるかどうか確認してください。

hereといい質問がありますが、hereというブログ記事があります。

最後に、次のenv varを追加して、カテゴリを上書きするデバッグの問題に追加することができます。 OBJC_PRINT_REPLACED_METHODS=YES。これは、問題の場合に備えて、どのメソッド名がカテゴリによって上書きされたかを記録します。

0

同じ機能を定義するモジュールが2つあります.1つはlibSecurIDLib.a(mem.o)pdcrypte2.oです。これらは、独自の名前空間(C++)にあるか、接頭辞を付けて衝突しないようにする必要があります(C)。

これは不可能な場合はwork aroundsですが、安全に名前を付けた方が安全です。

関連する問題