簡體   English   中英

導出C局部變量:JNI運行時行為問題

[英]exporting C local variables : JNI run-time behavior issue

我想在C庫(例如libA)中導出一些靜態變量,以從其他C文件的外部使用它們。

我曾經在桌面應用程序中使用extern關鍵字,但它一直在工作,但是當我移至JNI和Android時, extern關鍵字無法解決問題,因為在嘗試構建libA的* .so時,無論我使用的是什么。 C文件(使用力霸靜態變量),我得到的“未定義的引用”為所有力霸的“外部變量”的copiler錯誤。

為此,我嘗試在生成libA的* .so時鏈接C文件,但是在運行時,我注意到變量具有不同的地址,這不是extern關鍵字的正常結果。 (這意味着我要處理不同的地址<=>不同的變量,而不是相同的地址<=>“相同的變量”)。

那么,有沒有辦法解決這個問題呢? 也許使用memcpy或memset,如果這是正確的方法,請如何做?

提前致謝。

BR

在JNI文件中設置環境變量可以為您提供幫助嗎?

例如: setenv("GLOBALVARIABLE", "ON", 1);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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