Итак, у меня есть две библиотеки, которые, я думаю, конфликтуют друг с другом. У меня есть следующие параметры для ключа «Библиотека Поиск пути»:Конфликтующие библиотеки в проекте iOS
"$(SRCROOT)/projectname/Release-iphone/lib"
для одного из моих библиотек и "$(SRCROOT)/projectname"
для другого.
Я добавил CorePlot
библиотеки в мой проект, но работать она требует следующих флагов компоновщика: -ObjC -all_load
.
Теперь, когда я добавить один или оба из них я получаю следующее сообщение и мой проект не будет строить:
duplicate symbol _OBJC_CLASS_$_GTMHTTPFetcher in:
/Users/user/Library/Developer/Xcode/DerivedData/projectname-chibchblpntaapfagqcohtkixhib/Build/Intermediates/projectname.build/Debug-iphoneos/projectname.build/Objects-normal/armv7/GTMHTTPFetcher.o
/Users/user/Dropbox/Projectname/projectname/projectname/libGTLTouchStaticLib.a(GTMHTTPFetcher.o)
duplicate symbol _OBJC_METACLASS_$_GTMHTTPFetcher in:
/Users/user/Library/Developer/Xcode/DerivedData/projectname-chibchblpntaapfagqcohtkixhib/Build/Intermediates/projectname.build/Debug-iphoneos/projectname.build/Objects-normal/armv7/GTMHTTPFetcher.o
/Users/user/Dropbox/Projectname/projectname/projectname/libGTLTouchStaticLib.a(GTMHTTPFetcher.o)
ld: 176 duplicate symbols for architecture armv7
clang: error: linker command failed with exit code 1 (use -v to see invocation)
Проблема оказывается с библиотекой API Google libGTLTouchStaticLib.a
, но я не узнайте, как на нем влияют флаги-линкеры.
Дело в том, что я не ссылался на те конкретные файлы, которые нужно импортировать из любого места - я просто перетащил их в свой проект. –
Я просто собираюсь по именам мест, которые он сообщает. Файл .../DerivedData/... является нормальным для скомпилированного исходного файла, а libGTLTouchStaticLib.a - это ссылка на библиотеку. –
Да, этот добавлен непосредственно в проект, скопировав в него, этого не должно быть? –