2016-08-29 2 views
1

iosのテンソルフローをコンパイルしていましたが、https://github.com/tensorflow/tensorflow/tree/master/tensorflow/contrib/makefile1の手順に従っていました。Tensorflow:iosのコンパイルエラー(シンボルの重複)

私は最初の2つのステップ渡すことができました:

sh tensorflow/contrib/makefile/download_dependencies.sh 



sh tensorflow/contrib/makefile/compile_ios_protobuf.sh 

はしかし、私は、重複したシンボルエラーを得ましたか。私が逃げた時

make -f tensorflow/contrib/makefile/Makefile \ 
TARGET=IOS \ 
IOS_ARCH=ARM64 

誰でも手助けができますか?おかげ

ここではエラーです:

~/Documents/Projects/tensorflow/tensorflow/contrib/makefile/gen/lib/ios_ARM64/libtensorflow-core.a -arch arm64 
-miphoneos-version-min=9.2 -framework Accelerate -Xlinker -S -Xlinker -x -Xlinker -dead_strip -all_load 
L ~/Documents/Projects/tensorflow/tensorflow/contrib/makefile/gen/protobuf_ios/lib -lz -lstdc++ -lprotobuf -lz -lm 

duplicate symbol __ZN10tensorflow7NodeDef10SharedDtorEv in: 
~/Documents/Projects/tensorflow/tensorflow/contrib/makefile/gen/lib/ios_ARM64/libtensorflow-core.a(node_def.pb.o) 


duplicate symbol __ZN10tensorflow7NodeDef10SharedCtorEv in: 
~/Documents/Projects/tensorflow/tensorflow/contrib/makefile/gen/lib/ios_ARM64/libtensorflow-core.a(node_def.pb.o) 


duplicate symbol __ZN10tensorflow7NodeDef5ClearEv in: 
~/Documents/Projects/tensorflow/tensorflow/contrib/makefile/gen/lib/ios_ARM64/libtensorflow-core.a(node_def.pb.o) 

duplicate symbol __ZN10tensorflow72protobuf_ShutdownFile_tensorflow_2fcore_2fframework_2fnode_5fdef_2eprotoEv in: 
~/Documents/Projects/tensorflow/tensorflow/contrib/makefile/gen/lib/ios_ARM64/libtensorflow-core.a(node_def.pb.o) 


duplicate symbol __ZN10tensorflow70protobuf_AssignDesc_tensorflow_2fcore_2fframework_2fnode_5fdef_2eprotoEv 
in: ~/Documents/Projects/tensorflow/tensorflow/contrib/makefile/gen/lib/ios_ARM64/libtensorflow-core.a(node_def.pb.o) 


duplicate symbol __ZN10tensorflow67protobuf_AddDesc_tensorflow_2fcore_2fframework_2fnode_5fdef_2eprotoEv in: 
~/Documents/Projects/tensorflow/tensorflow/contrib/makefile/gen/lib/ios_ARM64/libtensorflow-core.a(node_def.pb.o) 


duplicate symbol __ZNK10tensorflow7NodeDef8ByteSizeEv in: 
~/Documents/Projects/tensorflow/tensorflow/contrib/makefile/gen/lib/ios_ARM64/libtensorflow-core.a(node_def.pb.o) 

duplicate symbol __ZN10tensorflow7NodeDef16default_instanceEv in: 
~/Documents/Projects/tensorflow/tensorflow/contrib/makefile/gen/lib/ios_ARM64/libtensorflow-core.a(node_def.pb.o) 

duplicate symbol __ZN10tensorflow7NodeDef21InitAsDefaultInstanceEv in: 
~/Documents/Projects/tensorflow/tensorflow/contrib/makefile/gen/lib/ios_ARM64/libtensorflow-core.a(node_def.pb.o) 

duplicate symbol __ZNK10tensorflow7NodeDef13IsInitializedEv in: 
~/Documents/Projects/tensorflow/tensorflow/contrib/makefile/gen/lib/ios_ARM64/libtensorflow-core.a(node_def.pb.o) 

duplicate symbol __ZNK10tensorflow7NodeDef11GetMetadataEv in: 
~/Documents/Projects/tensorflow/tensorflow/contrib/makefile/gen/lib/ios_ARM64/libtensorflow-core.a(node_def.pb.o) 

duplicate symbol __ZN10tensorflow7NodeDefD2Ev in: 
~/Documents/Projects/tensorflow/tensorflow/contrib/makefile/gen/lib/ios_ARM64/libtensorflow-core.a(node_def.pb.o) 

duplicate symbol __ZN10tensorflow7NodeDefC2Ev in: 
~/Documents/Projects/tensorflow/tensorflow/contrib/makefile/gen/lib/ios_ARM64/libtensorflow-core.a(node_def.pb.o) 

duplicate symbol __ZN10tensorflow7NodeDefD1Ev in: 
~/Documents/Projects/tensorflow/tensorflow/contrib/makefile/gen/lib/ios_ARM64/libtensorflow-core.a(node_def.pb.o) 

duplicate symbol __ZN10tensorflow7NodeDefC1Ev in: 
~/Documents/Projects/tensorflow/tensorflow/contrib/makefile/gen/lib/ios_ARM64/libtensorflow-core.a(node_def.pb.o) 

duplicate symbol __ZN10tensorflow7NodeDefD0Ev in: 
~/Documents/Projects/tensorflow/tensorflow/contrib/makefile/gen/lib/ios_ARM64/libtensorflow-core.a(node_def.pb.o) 

duplicate symbol __ZNK10tensorflow7NodeDef13SetCachedSizeEi in: 
~/Documents/Projects/tensorflow/tensorflow/contrib/makefile/gen/lib/ios_ARM64/libtensorflow-core.a(node_def.pb.o) 

duplicate symbol __ZNK10tensorflow7NodeDef39InternalSerializeWithCachedSizesToArrayEbPh in: 
    ~/Documents/Projects/tensorflow/tensorflow/contrib/makefile/gen/lib/ios_ARM64/libtensorflow-core.a(node_def.pb.o) 

duplicate symbol __ZN10tensorflow7NodeDef8CopyFromERKS0_ in: 
~/Documents/Projects/tensorflow/tensorflow/contrib/makefile/gen/lib/ios_ARM64/libtensorflow-core.a(node_def.pb.o) 

duplicate symbol __ZN10tensorflow7NodeDef9MergeFromERKS0_ in:  
~/Documents/Projects/tensorflow/tensorflow/contrib/makefile/gen/lib/ios_ARM64/libtensorflow-core.a(node_def.pb.o) 

duplicate symbol __ZN10tensorflow7NodeDefC2ERKS0_ in: 
    ~/Documents/Projects/tensorflow/tensorflow/contrib/makefile/gen/lib/ios_ARM64/libtensorflow-core.a(node_def.pb.o) 

duplicate symbol __ZN10tensorflow7NodeDefC1ERKS0_ in: 
    ~/Documents/Projects/tensorflow/tensorflow/contrib/makefile/gen/lib/ios_ARM64/libtensorflow-core.a(node_def.pb.o) 

duplicate symbol __ZNK10tensorflow7NodeDef24SerializeWithCachedSizesEPN6google8protobuf2io17CodedOutputStreamE in: 
    ~/Documents/Projects/tensorflow/tensorflow/contrib/makefile/gen/lib/ios_ARM64/libtensorflow-core.a(node_def.pb.o) 

duplicate symbol __ZN10tensorflow7NodeDef27MergePartialFromCodedStreamEPN6google8protobuf2io16CodedInputStreamE in: 
~/Documents/Projects/tensorflow/tensorflow/contrib/makefile/gen/lib/ios_ARM64/libtensorflow-core.a(node_def.pb.o) 

duplicate symbol __ZTVN10tensorflow7NodeDefE in:  
~/Documents/Projects/tensorflow/tensorflow/contrib/makefile/gen/lib/ios_ARM64/libtensorflow-core.a(node_def.pb.o) 

duplicate symbol __ZTSN10tensorflow7NodeDefE in: 
~/Documents/Projects/tensorflow/tensorflow/contrib/makefile/gen/lib/ios_ARM64/libtensorflow-core.a(node_def.pb.o) 

duplicate symbol __ZTIN10tensorflow7NodeDefE in: 
    ~/Documents/Projects/tensorflow/tensorflow/contrib/makefile/gen/lib/ios_ARM64/libtensorflow-core.a(node_def.pb.o) 

duplicate symbol __ZN10tensorflow7NodeDef8CopyFromERKN6google8protobuf7MessageE in: 
    ~/Documents/Projects/tensorflow/tensorflow/contrib/makefile/gen/lib/ios_ARM64/libtensorflow-core.a(node_def.pb.o) 

duplicate symbol __ZN10tensorflow7NodeDef9MergeFromERKN6google8protobuf7MessageE in: 
    ~/Documents/Projects/tensorflow/tensorflow/contrib/makefile/gen/lib/ios_ARM64/libtensorflow-core.a(node_def.pb.o) 

duplicate symbol __ZNK10tensorflow7NodeDef3NewEPN6google8protobuf5ArenaE in: 
    ~/Documents/Projects/tensorflow/tensorflow/contrib/makefile/gen/lib/ios_ARM64/libtensorflow-core.a(node_def.pb.o) 

duplicate symbol __ZN10tensorflow7NodeDefC2EPN6google8protobuf5ArenaE in: 
    ~/Documents/Projects/tensorflow/tensorflow/contrib/makefile/gen/lib/ios_ARM64/libtensorflow-core.a(node_def.pb.o) 

duplicate symbol __ZN10tensorflow7NodeDefC1EPN6google8protobuf5ArenaE in: 
    ~/Documents/Projects/tensorflow/tensorflow/contrib/makefile/gen/lib/ios_ARM64/libtensorflow-core.a(node_def.pb.o) 

duplicate symbol __ZN10tensorflow81static_descriptor_initializer_tensorflow_2fcore_2fframework_2fnode_5fdef_2eproto_E in: 
    ~/Documents/Projects/tensorflow/tensorflow/contrib/makefile/gen/lib/ios_ARM64/libtensorflow-core.a(node_def.pb.o) 

duplicate symbol __ZN10tensorflow7NodeDef17default_instance_E in: 
    ~/Documents/Projects/tensorflow/tensorflow/contrib/makefile/gen/lib/ios_ARM64/libtensorflow-core.a(node_def.pb.o) 

ld: 44 duplicate symbols for architecture arm64 
clang: error: linker command failed with exit code 1 (use -v to see invocation) 
make: *** [~/Documents/Projects/tensorflow/tensorflow/contrib/makefile/gen/bin/ios_ARM64/benchmark] Error 1 
+0

質問をフォーマットしてください –

+1

@bubありがとう、再フォーマット –

答えて

0

ので、それを削除しようとすると、それは再び作るよりも、複数の、

libtensorflow-core.a in your project. 

を持つことが可能です。

プロジェクトに重複するファイルまたはメソッドや変数があります。だから、それらを検索して削除してみてください。

+0

ありがとう、少し奇妙です。私はテンソルフローレポで最後のコミットをチェックアウトしました:4c49dbebef05442c7e72d6129a30574fcd13f0e1。何とか、コンパイルエラーがなくなった。 –

+0

ようこそ。 @H。毛 – KAR

0

執筆時点では、TensorFlowのHEADはiOS用にうまく構築されていません。このような過渡的な質問が閉じられた場合ので、ここに役立つ2つの一般的なメカニズムである(私はにリンクし、関連する質問を逃した場合、助けてください!)と思います:

  • あなたはどのような種類の最先端をチェックアウトしている場合(通常Gitを使用している場合にはHEADmasterにあります)、中断することを期待しています。リリースタグはしばしばより安定しており、最新の変更が行われていないというコストにうまくいきます。たとえば、git tagはタグをリストアップし、通常は選択するパターンはvX.Y.Zです。
  • ソースから再ビルドする必要がある場合は、現在のビルドを先にクリーニングする方がよい場合があります。クリーニングには時間がかかるので、楽観的で直接ビルドしてから、問題が発生した場合にはクリーン/ビルドすることができます。通常、コマンドはmake -f tensorflow/contrib/makefile/Makefile cleanのようになります。

また、TensorFlowの公式ビルドシステムはBazelに依存している、とmakeビルドシステムが遅れ、ほとんどの時間です:makeに依存しているすべてのプラットフォームには、再び(HEADで破断する高いリスクを持っている、それは常に真ではありません)。 makeビルドシステムが明示的に脇に置かれているtensorflow/contribディレクトリにあるように注意してください。

関連する問題