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