[英]LD_PRELOAD variable in JNI code
我的Java代碼通過JNI從共享庫(例如libtest.so)中調用了一些C ++代碼。 該代碼使用libdebug.so中存在的一些特殊調試符號進行檢測。 當我打電話
LD_PRELOAD = / usr / lib / libdebug.so java com.test.myMain
執行Exception in thread "main" java.lang.UnsatisfiedLinkError
以Exception in thread "main" java.lang.UnsatisfiedLinkError
停止
因為libdebug.so中的符號未加載(為什么?)。
我想知道是否可以修改我的代碼以便在Java代碼中預加載該庫。 (當然,我不想用libdebug.so來編譯Java ...)
System.load
可用於加載任何共享庫,因此,您可以嘗試使用System.load
在靜態塊中加載調試庫(在加載JNI庫之前)。 或在您的JNI庫之前嘗試System.loadLibary("debug")
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.