我有兩個共享庫A.dylib和B.dylib都對應靜態鏈接庫薩JNI複製在Mac OS X庫加載崩潰
當我只加載A.dylib與System.load或系統.loadLibrary,沒有問題。對於B.dylib也是如此。
但是,當我打開一前一後(順序並不重要),我看到了一些初始化代碼的第二加載庫崩潰。並且當我檢查堆疊,所述崩潰碼塊是介於S.A
不知何故S.A符號被A.dylib和B.dylib之間共享時它們都裝載。而這僅在Mac OS X發生堆棧清楚地表明,所述第二加載的一個調用經由第一加載的一個S.A的方法。更清楚;
- 負載A.dylib
- A#的init - >調用從靜態鏈接薩
- 負載的方法B.dylib
- B#的init - >通過從A.靜態鏈接薩調用一個方法dylib
我試圖在不同的類加載器中加載A.dylib和B.dylib,但是這並沒有改變結果。你知道是否有辦法阻止這種共享?