0
我使用NDK編譯了一個C項目,並獲得了很多.a文件,據我所知,它們不是靜態庫。我不知道.a和.so文件究竟有什麼區別,但我想問一下:我確切地知道,通過NDK中的工具鏈,我可以導入所有.a文件並獲取.so文件,但可以使用.so文件。一個文件如何將.a文件包含在.interface文件中以便SWIG整個庫?是否可以使用SWIG將.a擴展名包裝爲靜態庫?
我使用NDK編譯了一個C項目,並獲得了很多.a文件,據我所知,它們不是靜態庫。我不知道.a和.so文件究竟有什麼區別,但我想問一下:我確切地知道,通過NDK中的工具鏈,我可以導入所有.a文件並獲取.so文件,但可以使用.so文件。一個文件如何將.a文件包含在.interface文件中以便SWIG整個庫?是否可以使用SWIG將.a擴展名包裝爲靜態庫?
SWIG不會從庫生成接口文件。您可以提供包裝以包含所有相關標題(.h
)文件,或者手動創建.i
文件,只顯示相關的C
函數。
請注意,Android應用程序無法與靜態庫一起工作,您必須必須構建動態庫.so
才能使用JNI。您將從Java代碼中調用System.load()
從磁盤加載此.so
。