2017-08-26 7 views
1

Ich versuche, eine modifizierte Version von ios-ruby-embedded Projekt mit einigen zusätzlichen Edelsteinen, einschließlich der mruby-marshal Edelstein aus der mruby-mgems Liste (die eine CPP-Datei enthält) zu bauen. Ich kann es bekommen zu bauen und laufen, aber wenn ich eine Ausnahme, die App abstürzt erhöhen, wenn es ruft MRB_THROW von error.c mit folgenden Meldung:MRB_THROW verursacht Fehler in libC++ abi.dylib

libc++abi.dylib: terminating with uncaught exception of type int 

Ich vermute, dass das Problem ist ein Konflikt, wie mRuby Ausnahmebehandlung wird kompiliert und verknüpft: Gemäß der Dokumentation kann es entweder setjmp/longjmp-Behandlung oder C++ - Ausnahmen verwenden, wenn C++ - Code enthalten ist; Ich kann jedoch nicht herausfinden, welche Kombination von Konfigurationsoptionen ich brauche, um es zum Laufen zu bringen.

Um das zu bekommen, es zu bauen ich einige Änderungen am Projekt vorgenommen:

  • Fügen Sie die conf.cxx Abschnitte für jedes Ziel in der Rakefile (die Einstellungen in den conf.cc Abschnitte Duplizieren)
  • Fügen Sie den ‚-lC++‘ Flag ‚Andere Linker Flags‘ im Xcode-Projekt ich verwende (abgeleitet aus dem mruby-ios-example Projekt)
  • im mruby Marschall Projekt, verwenden Sie die mruby-pure-regexp gem anstelle der mruby-onig-regexp Abhängigkeit

Antwort

0

Die Lösung bestand darin, das Flag -fexceptions der C-Compiler-Flagsliste hinzuzufügen. Ich bereitete einen gist mit dem Rakefile vor, das ich verwendete, um dieses zu beheben, notieren Sie die conf.cc Markierungsfahnen.

Verwandte Themen