Неопределенные символы для архитектуры arm64 [SDKBOX и cocos2dx v2.2.6]

Я обновляю очень старую игру, используя cocos2dx v2.2.6 и SDKBOX 1.0.16 (который вышел сегодня). Я выполнил все шаги, но я попал в тупик, когда я обновил свою цель iOS.

Я получаю эту ошибку:

Undefined symbols for architecture arm64:
"sdkbox::PluginChartboost::show(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)", referenced from:
GameLayer::pauseGame(cocos2d::CCObject*) in GameLayerScene.o
"sdkbox::PluginAdMob::isAvailable(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)", referenced from:
GameLayer::pauseGame(cocos2d::CCObject*) in GameLayerScene.o
"sdkbox::PluginAdMob::show(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)", referenced from:
GameLayer::pauseGame(cocos2d::CCObject*) in GameLayerScene.o
"sdkbox::PluginChartboost::isAvailable(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)", referenced from:
GameLayer::pauseGame(cocos2d::CCObject*) in GameLayerScene.o
"sdkbox::PluginAdMob::cache(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)", referenced from:
GameLayer::pauseGame(cocos2d::CCObject*) in GameLayerScene.o
AppDelegate::applicationDidFinishLaunching() in AppDelegate.o
ld: symbol(s) not found for architecture arm64

clang: error: ошибка команды компоновщика с кодом выхода 1 (Используйте -v, чтобы увидеть вызов)
Как вы можете видеть, он не может определить какой-либо метод, связанный с объявлениями, но функция init для каждого плагина работает хорошо и не вызывает никаких ошибок.

Кто-нибудь заметил такую проблему или знаете, что может быть причиной этого? Я дважды проверил фреймворки в Link binary с framework.

Спасибо!.

1 ответ

  1. Необходимо исправить целевой объект сборки так, чтобы он фактически связывался с библиотекой C++. Одна вещь, чтобы проверить, чтобы убедиться, что у вас на самом деле есть .cpp or .mm файл в вашем проекте, так что Xcode знает, чтобы автоматически связать C++ runtime (пустой файл с правильным расширением сделает это).