повторяющийся символ _OBJC_METACLASS _ $ _ ClassName - PullRequest
44 голосов
/ 17 марта 2011

Я пытаюсь запустить свое приложение cocos2d и сталкиваюсь с этой ошибкой, поскольку недавно я обновил свой sdk до 4.2, а мой cocos2d до 0.99.5.

Я пытался очистить свой проект, даже изменив целевой iosРазвертывание, но ошибка остается той же.Также переименуйте className также, чтобы избежать дублирования имен классов библиотеки cocos2d.

ld: дублирующий символ _OBJC_METACLASS _ $ _ MenuSceneNew в / Users / umaidsaleem / Desktop / functionsTest / build / Debug-iphonesimulator / libcocos2dlibrary.a (MenuScene.o) и /Users/umaidsaleem/Desktop/functionalityTest/build/functionalityTest.build/Debug-iphonesimulator/functionalityTest.build/Objects-normal/i386/MenuScene.o

Ответы [ 17 ]

1 голос
/ 14 июня 2016

У меня был проект с 2 целями. Цель с именем Компонент и вторая с именем Sample. Образец использовал компонент в качестве библиотеки ссылок. Затем Компонент использовал модуль под названием MyPod (установлен с cocoapod).

Подфайл был написан так:

def shared_pods
   pod 'MyPod' 
end

target 'Component' do
    shared_pods  
end

target 'Sample' do
    shared_pods
end

Обе цели ссылались на общий список стручков. При создании цели Component проблем не возникает, но при создании примера я получаю дубликат символа _OBJC_METACLASS _ $ _ ClassName. Я изменил подфайл на:

def shared_pods
    # empty
end

target 'Component' do
   pod 'MyPod'
   shared_pods  
end

target 'Sample' do
    shared_pods
end

И это решит проблему. 3 часа потратили, надеюсь сэкономить время.

1 голос
/ 18 марта 2011

Я сам разобрался с решением, извините за публикацию немного отложено.Вся помощь очень ценится, но проблема возникает, когда я добавляю новый производный класс CCLayer и помечаю статическую библиотеку cocos2d 0.99.5, что было неправильно.Затем я повторно рекламирую свой класс, не проверяя и не убирая свои цели, а затем строю и работаю.Проблема решена.

0 голосов
/ 26 ноября 2015

В моем случае я использовал бинарную библиотеку, включающую то же имя класса, что и снаружи, поэтому я изменил имя класса, и оно работает нормально:)

0 голосов
/ 07 мая 2014

Удалить цель с правой панели и снова добавить цель.Это удалит все повторяющиеся ссылки.Это может произойти, если 2 программиста добавят одну цель и передадут файл проекта.

0 голосов
/ 19 декабря 2013

Другая возможность для ошибки, подобной этой, - это когда происходит столкновение имени класса. Либо 2 класса с одинаковым именем в вашем проекте, либо класс из вашего проекта конфликтует с классом, определенным в некоторых библиотеках зависимостей.

0 голосов
/ 08 августа 2013

Ни один из Ответов не работал для меня, поэтому я удалил файлы из проекта и выбрал только Удалить ссылки.

Затем я добавил те же файлы, и это сработало.

Это исправило мою ошибку. Возможно, в XCode где-то хранятся потерянные ссылки, поскольку проект является многоуровневым.

Надеюсь, это кому-нибудь поможет.

0 голосов
/ 26 августа 2012

XCode Beta потерпела крах при удалении ссылки на класс. Это вызвало проблему, описанную в ответе, исправление снова было другим.

На этапе сборки моей цели в разделе «Компиляция источников» предмет, вызывающий у меня горе, был красным. Я не мог удалить его с помощью кнопки минус, но, введя «пропустить» в флагах компилятора, красный класс исчез после перезагрузки проекта. Я предполагаю, что вы могли бы напечатать что-нибудь там.

Мне потребовалось два часа, чтобы найти решение для моей проблемы, я поставил его здесь для другого варианта для тех, у кого есть эта проблема, хотя, вероятно, он не будет распространенным.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...