我设法使我的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时,会发生错误
编辑:
我在第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
但说实话,我不确定没有重命名......意思是。
答案 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很开心。