jni之動態庫的載入

2022-09-12 18:12:14 字數 333 閱讀 9378

一專案中,使用了多個動態庫,且動態庫之間存在依賴關係,假設為a.so及b.so,且b.so依賴於a.so。

在使用

static

進行動態庫載入的時候,始終提示b庫載入失敗,稱找不到依賴a,但是顯然第一部就載入了a,且載入成功。

幾經周折發現,a的soname不為a,而是"_a"。載入過程中,系統分析動態庫的依賴關係不是基於檔名而是soname。

總結:使用「readelf」命令可以檢視so庫的soname及依賴關係;使用「patchelf」命令可以修改動態庫的a的soname,也可以修改b的依賴資訊為_a.so。

動態載入動態庫

message函式的宣告你應該知道吧,把它的宣告和下面的語句寫到乙個標頭檔案中 pragma comment lib,a.lib 然後你的對話方塊.cpp中包含這個標頭檔案就可以使用message函式了。如果dll沒有對應的.lib檔案,那麼就只能使用動態載入的方式了。動態呼叫動態庫步驟 1 建立乙...

jni之jni與jna的比較

j a開發過程中會遇到需要呼叫c c 動態庫 windows平台的dll和linux平台的so 的情況,可以使用jni或者jna技術。jna基於jni技術開發,主要在上層作了型別自動轉換的封裝,讓開發人員極易使用,無需jni那樣的繁雜的介面層開發。但是,jni的呼叫效率要比jna高得多,如果乙個操作...

動態載入庫

使用vc程式設計時遇到乙個奇怪的情況,包含了,但是編譯器編譯結果告知無法找到hmonitor結構,從vc上 能看到hmonitor結構宣告在windef.h裡,但是包含了還是不行,最後乙個同事告知包含multimon.h即可。好,切入正題。結構找到了,不過很多函式沒有找到,在網上也沒找到好方法。最後...