2016-08-29 2 views
1

Ich kompilierte Tensorflow für iOS und folgte den Anweisungen https://github.com/tensorflow/tensorflow/tree/master/tensorflow/contrib/makefile1.Tensorflow: ios Kompilierungsfehler (doppelte Symbole)

konnte ich die ersten zwei Schritte weitergeben müssen:

sh tensorflow/contrib/makefile/download_dependencies.sh 



sh tensorflow/contrib/makefile/compile_ios_protobuf.sh 

Allerdings habe ich Fehler doppelte Symbol,? wenn ich lief

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

Jeder kann helfen? Dank

Hier sind die Fehler:

~/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

Bitte formatieren Sie Ihre Frage –

+1

@bub Dank, umformatiert –

Antwort

0

Es ist möglich, mehr als ein, versuchen

libtensorflow-core.a in your project. 

Also, um es zu entfernen und es als wieder zu machen.

Es gibt einige doppelte Datei oder Methode oder Variablen in Ihrem Projekt. Also versuche sie zu suchen und entferne sie.

+0

Dank, es ist ein bisschen seltsam. Ich habe das letzte Commit in Tensorflow Repo überprüft: 4c49dbebef05442c7e72d6129a30574fcd13f0e1. Irgendwie waren die Kompilierungsfehler verschwunden. –

+0

Willkommen Bro. @H. Mao – KAR

0

Zum Zeitpunkt des Schreibens, das HEAD von TensorFlow baut nicht gut für iOS. Es würde helfen, wenn eine solche vorübergehende Frage geschlossen war, so sind hier zwei generische Mechanismen (wenn ich eine Frage im Zusammenhang verpasst zu verknüpfen, bitte helfen Sie!):

  • Wenn Sie die bleeding edge jeglicher Art sind Check-out von Repository (in der Regel die HEAD auf master, wenn Sie Git verwenden), erwarten zu brechen. Release-Tags sind oft viel stabiler und sollten gut bauen, was die Kosten der fehlenden Änderungen ausschließt. Zum Beispiel listet Tags auf, und normalerweise gibt es vX.Y.Z Muster, aus denen Sie auswählen können.
  • Wenn Sie von der Quelle neu zu bauen, ist es oft besser --- nicht immer erforderlich --- zuerst den aktuellen Build zu reinigen. Die Reinigung braucht Zeit, also kannst du optimistisch sein und direkt bauen, dann clean/build wenn irgendein Problem auftaucht. Normalerweise sehen Befehle wie make -f tensorflow/contrib/makefile/Makefile clean aus.

Auch TensorFlow offiziellen Build-System auf Bazel beruht und das make Build-System ist die meiste Zeit im Rückstand: Alle Plattformen, die auf make verlassen höheres Risiko bei HEAD (wieder zu brechen, ist das nicht immer wahr). Beachten Sie, dass das Build-System make im Verzeichnis tensorflow/contrib ist, das explizit beiseite gelegt wird.

Verwandte Themen