C ライブラリ (libA など) のいくつかの静的変数をエクスポートして、他の C ファイルで外部から使用したいと考えています。
以前はデスクトップ アプリケーションにキーワードを使用してextern
いましたが、機能していましたが、JNI と Android に移行しextern
たとき、他の C ファイルに関係なく、libA の *.so をビルドしようとすると、キーワードがうまく機能しませんでした。 (これは libA 静的変数を使用します)、libA のすべての「extern 変数」に対して「未定義の参照」のコンパイラ エラーが発生しました。
そのために、libA の *.so を生成するときに C ファイルをリンクしようとしましたが、実行時に、変数のアドレスが異なることに気付きました。これは、extern
キーワードの通常の結果ではありません。(つまり、同じアドレス<=>「同じ変数」ではなく、異なるアドレス<=>異なる変数を操作しています)。
それで、この問題を解決する方法はありますか?おそらく memcpy または memset を使用して、それが適切な方法である場合は、その方法を教えてください。
前もって感謝します。
ブラジル