我刚刚在新机器上安装了最新版本的Android NDK(r11b)。当我编译我的C ++代码时,我得到一个" __ pure2"已被重新定义。它显示包含文件math.h
包含sys/cdefs.h
。他们两个都无条件地定义了一个名为" __ pure2"并且它们都以不同的方式定义它。
相同的代码在我的旧机器上正常工作。经过调查,它出现在我的机器上$ ndk \ platforms \ android-9 \ arch-arm \ usr \ include \ sys \ cdefs.h没有" __ pure2的任何定义。"看起来有人最近介绍了这个。想知道是否有其他人看到过这个问题。
目前,我刚刚在sys/cdefs.h
中评论了宏定义。有没有更好的方法来解决这个问题?问候。
答案 0 :(得分:3)
实际上有bug ticket跟踪此问题。您可能希望关注它以进行进一步更新,但看起来它将在NDK r12中修复。我可能会选择使用#ifndef解决它,如票证评论中所述。
#ifndef __pure2
#define __pure // whatever the original definition is
#endif