C代码中的Android NDK和extern变量

C代码中的Android NDK和extern变量,android,c,android-ndk,extern,Android,C,Android Ndk,Extern,我有一个库,我想自定义它的工作(我的意思是用我的外部程序替换库的主程序,这样我就可以对库的函数调用重新排序),为此,我必须将一些静态变量更改为extern变量,以便库和我的程序都能处理它们 我的程序在Linux桌面机器上运行时运行良好,但是当我尝试使用NDK将其移植到Android时,由于extern关键字,我无法编译它 因此,我想知道是否有一种方法可以使用Android.mk或替代使用extern关键字来实现这些功能。您得到的是一个“未定义的引用”,因为extern不是一个变量定义,只是一个声

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

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

因此,我想知道是否有一种方法可以使用Android.mk或替代使用
extern
关键字来实现这些功能。

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

至于替代方法,不,一个
extern
变量是让一个全局变量跨C中的多个对象文件访问的唯一方法


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

您得到的确切错误消息是什么,以及它抱怨的代码是什么样子的?我得到了“undefined reference”错误消息。您可以显示您的Android.mk文件和C源代码吗?