簡體   English   中英

JNI代碼中的LD_PRELOAD變量

[英]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.UnsatisfiedLinkErrorException 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.

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