我爲Android開發了一些本地庫,並使用Boost庫 - 只是基於標頭的庫。我面臨的問題是,當我嘗試將一些本機庫鏈接到某個系統庫時,引發了UnsatisfiedLinkError
。這是由於隨着NDK文檔中所述不同的C++運行時:是否可以在Boost庫中禁用異常和RTTI?
只能選擇一個C++運行時,所有你的代碼將 依賴。不可能混合使用針對不同C++運行時編譯的共享庫。
系統庫不使用RTTI和異常,但我的庫隱式使用它。 我知道有宏BOOST_EXCEPTION_DISABLE
和BOOST_NO_RTTI
,但我無法使其工作。我試圖將它們設置爲編譯器標誌和在config.hpp爲好,但沒有運氣 - 仍然得到許多錯誤,如
cannot use typeid with -fno-rtti
我怎樣才能加速禁用這些功能,是它甚至可能嗎?
嘗試編譯Boost時你遇到了那個錯誤嗎?或者當試圖編譯自己的代碼? –
當試圖編譯我自己的代碼。 – vitakot
順便說一下,你的問題沒有意義;我寫了我只使用標題...,主要是circular_buffer.hpp,signal.hpp和shared_ptr.hpp – vitakot