2017-01-13 3 views
0

Je suis en train de mettre à jour un jeu très ancien en utilisant cocos2dx v2.2.6 et SDKBOX 1.0.16 (qui est sorti aujourd'hui). J'ai suivi toutes les étapes mais je suis tombé dans une impasse quand j'ai mis à jour ma cible iOS.Symboles indéfinis pour l'architecture arm64 [SDKBOX et cocos2dx v2.2.6]

Je reçois cette erreur:

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: erreur: commande de liaison a échoué avec le code de sortie 1 (utiliser -v pour voir l'invocation) Comme vous pouvez le voir, il ne peut pas identifier une méthode liée à des annonces, mais la La fonction init de chaque plugin fonctionne correctement et ne provoque aucune erreur.

Quelqu'un a-t-il remarqué un tel problème ou sait-il ce qui peut en être la cause? J'ai vérifié les frameworks dans link binary avec framework.

Merci.

Répondre

0

Vous devez corriger la cible de génération afin qu'elle soit réellement liée à la bibliothèque C++. Une chose à vérifier est de s'assurer que vous avez réellement un fichier .cpp ou .mm dans votre projet, afin que Xcode sache lier automatiquement le runtime C++ (un fichier vide avec la bonne extension le fera).

+0

J'ai plusieurs fichiers .cpp dans mes classes de projet i.e pour mon projet de jeu cocos2dx ainsi que les classes de moteur de jeu cocos2dx. –

+0

Eh bien, vous allez devoir vérifier la ligne de liaison tout en construisant pour vous assurer que la bibliothèque C++ est incluse. Votre projet échoue à lier car il ne peut pas attacher tous les symboles C++ pour certains resson. – MoDJ