导出C局部变量:JNI运行时行为问题

exporting C local variables : JNI run-time behavior issue

本文关键字:问题 运行时 JNI 局部变量 导出      更新时间:2023-10-16

我想导出C库中的一些静态变量(例如libA),以便在其他C文件中从外部使用它们。

我曾经使用extern关键字的桌面应用程序,它是工作的,但是当我搬到了JNI & &;在Android中,extern关键字不能做到这一点,因为当试图构建*。所以libA,不管我的其他C文件(使用libA静态变量),我得到了libA的所有"外部变量"的"未定义引用"的编译器错误。

为此,我试图在生成*时链接C文件。所以libA,但在运行时,我注意到变量有不同的地址,这不是extern关键字的正常结果。(意思是我在操作不同的地址<=>不同的变量,而不是相同的地址<=>"相同的变量")。

那么,有办法解决这个问题吗?也许使用memcpy或memset,如果这是正确的方式,请如何做到这一点?

提前感谢。

B。R

在JNI文件中设置一个环境变量会对您有所帮助吗?

E。g: setenv("GLOBALVARIABLE", "ON", 1);