Android NDK错误:无法重命名功能

时间:2011-11-03 18:26:25

标签: c++ android-ndk

我设法使我的Android项目与Visual Studio项目一起工作。我唯一的问题是当我编译c ++项目时,vsc ++编译器给我这个错误:

android-ndk-r6b\platforms\android-9\arch-x86\usr\include\sys\cdefs.h(252): fatal error C1189: #error : "No function renaming possible"

如果之前有人遇到此问题,任何输入都会很好。

当我包含包含这些文件的.h时,会发生错误

  • jni.h
  • 机器人\ log.h

编辑:

我在第252行看了cdefs.h:

245 | #if !defined(_STANDALONE) && !defined(_KERNEL)
246 | #ifdef __GNUC__
247 | #define   __RENAME(x) ___RENAME(x)
248 | #else
249 | #ifdef __lint__
250 | #define   __RENAME(x) __symbolrename(x)
251 | #else
252 | #error "No function renaming possible"
253 | #endif /* __lint__ */
254 | #endif /* __GNUC__ */
255 | #else /* _STANDALONE || _KERNEL */
256 | #define   __RENAME(x) no renaming in kernel or standalone environment
257 | #endif

但说实话,我不确定没有重命名......意思是。

3 个答案:

答案 0 :(得分:1)

来自cdefs.h的{​​{1}}似乎与Visual Studio中的“默认”$(NDKROOT)/.../includes发生冲突。尝试直接解决包含中的cdefs.h文件夹,并将源文件中的android更改为#include <android/log.h>

关于#include <log.h>我没有进一步的线索......

答案 1 :(得分:0)

源代码中有#error个pragma。找到这个pragma并探索它的附近区域以检查是否有任何评论和/或#ifdef可能会给你一个关于问题的提示。

答案 2 :(得分:0)

我想做同样的事情,使用Visual Studio编译我的Android代码。即使Studio没有平板电脑模拟器,我至少可以在Studio下运行我的一些逻辑,这些部分不涉及Android的任何特定内容(例如UI绘图)。为什么要在如此有限的开发环境中烦恼?好吧,仅仅因为Studio有一个非常好的C ++编辑器,它的编译速度比Android Studio / Gradle快得多。我有很多非UI逻辑,我需要正确。因此,我将我的工作划分为预备步骤,我认为可以通过Studio更快地完成。

对我来说,我复制了jni.h(来自android NDK&x; x86文件夹)。我做了一些调整......

#define __NDK_FPABI__
//#include <sys/cdefs.h>
...
#define JNIEXPORT  //gdh: __attribute__ ((visibility ("default")))

这让Studio很开心。