簡體   English   中英

MRB_THROW在libc ++ abi.dylib中導致錯誤

[英]MRB_THROW causes error in libc++abi.dylib

我正在嘗試使用一些額外的寶石來構建ios-ruby嵌入式項目的修改版本,包括mruby-mgems列表(包括.cpp文件)中的mruby-marshal寶石。 我可以得到它的建立和運行,但如果我提出任何異常的應用程序崩潰時,它調用MRB_THROW從以下消息error.c:

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

我懷疑問題在於如何在mRuby異常處理的編譯和鏈接中發生沖突:根據文檔,如果包括C ++代碼,它可以使用setjmp / longjmp處理或C ++異常; 但是,我無法弄清楚我需要哪種配置選項才能使其正常工作。

為了構建它,我對項目進行了一些更改:

  • 在Rakefile中為每個目標添加conf.cxx部分(復制conf.cc部分中的設置)
  • 在我正在使用的Xcode項目中將“ -lc ++”標志添加到“其他鏈接器標志”(來自mruby-ios-example項目)
  • 在mruby-marshal項目中,使用mruby-pure-regexp gem而不是mruby-onig-regexp依賴項

解決方案是將-fexceptions標志添加到C編譯器標志列表。 我准備了用於修復此問題的Rakefile的要點 ,請注意conf.cc標志。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM