1

armv7構造にコンパイルするときの私のプロジェクトには、次のエラーがあります。

duplicate symbol _MD5 in:
    /Users/User1/Documents/codes/ProgramList1/libraries/armv7/lib/libcrypto.a(md5_one.o)
    /Users/User1/Documents/codes/ProgramList1/ProgramList1/ADs/AdsMoGoLib/AdNetworkLibs/AdMob_SDK_621/libGoogleAdMobAds.a(GADGestureCFiles.o)
ld: 1 duplicate symbol for architecture armv7
clang: error: linker command failed with exit code 1 (use -v to see invocation)

私はこの問題をグーグルで検索しましたが、誰かが2つのライブラリを1つに結合して、次のように重複するシンボルを取り除くことを提案していることを読みました。

> lipo libGoogleAdMobAds.a -thin armv7 -output libGoogleAdMobAds-armv7.a
> mkdir armv7
> cd armv7/
> ar -x ../libGoogleAdMobAds-armv7.a 
> ar -x ../libcrypto.a 
> libtool -static -o ../libcrypto-googlead-armv7.a *.o

最後に、プロジェクトに戻り、リンクフラグからlibGoogleAdMobAds.aとlibcrypto.aを削除し、新しい結合されたlibをプロジェクトに追加します。

しかし、それでも同じエラーが発生します。

duplicate symbol _MD5 in:
    /Users/User1/Documents/codes/ProgramList1/libraries/armv7/lib/libGoogleAdMobAds-armv7.a(md5_one.o)
    /Users/User1/Documents/codes/ProgramList1/ProgramList1/ADs/AdsMoGoLib/AdNetworkLibs/libGoogleAdMobAds-armv7.a(GADGestureCFiles.o)
ld: 1 duplicate symbol for architecture armv7
clang: error: linker command failed with exit code 1 (use -v to see invocation)

ご覧のとおり、同じライブラリに重複するシンボルがあります。私は今どうすればいい?

4

2 に答える 2

1

回答のためにコメントを再投稿する

「プロジェクト/ターゲットビルド設定のその他のリンカーフラグでall_loadフラグを設定しましたか?」

all_loadの機能に関する詳細な説明は次のとおりです。

XCode 4.2のthree20依存関係に-force_loadが不要になったのはなぜですか?

于 2013-01-24T05:30:59.153 に答える
1

-all_loadビルド設定のリンカーフラグを削除します。

一部のライブラリから追加を求められた場合でも、削除しても安全です。

于 2013-08-22T16:18:11.757 に答える