C 代码中的 Android NDK 和外部变量

标签 android c android-ndk extern

我有一个库,我想自定义它的工作(我的意思是用我的外部程序替换库的主体,这样我就可以重新排序库函数的调用),为此我必须更改一些静态变量到 extern 变量,以便库和我的程序可以同时处理它们。

我的程序在我的 Linux 台式机上运行时运行良好,但是当我尝试使用 NDK 将其移植到 Android 时,由于 extern 关键字,我无法编译它。

所以,我想知道是否有关于 Android.mk 的方法或使用 extern 关键字的替代方法来使事情正常进行。

最佳答案

你得到一个“ undefined reference ”,因为 extern 不是一个变量定义,只是一个声明。这意味着您必须在代码的其他地方有一个非 extern 声明,否则编译器不会为您的变量分配符号。

至于替代方案,不,extern 变量是在 C 中跨多个目标文件使用全局变量的唯一方法。

如果在同一个目标文件中只需要一个全局变量,可以使用static 这样符号就不会导出到其他对象。

关于C 代码中的 Android NDK 和外部变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15762769/

相关文章:

java - Android线程池管理多个蓝牙处理线程?

android - Material 按钮上的圆角

c - C函数中段错误的未知原因

Android 日志打印 CString

Android NDK 示例构建错误 linux

android - Android 上的 pthread_sigmask 不起作用?

android - PopupWindow z 排序

Android - 在 SQLite 数据库中保存位置

c - 如何以句点 (.) 结束程序

c - 输入最后一个数组元素时出现段错误