Unreal Engine 4 - Android GDR - Visual Studio - sys/cdefs.h - "No function renaming possible"
Unreal Engine 4 - Android NDK - Visual Studio - sys/cdefs.h - "No function renaming possible"
我正在尝试在 Visual Studio 2013 年编译 Unreal Engine 4 项目,包括 Android NDK,但是出现错误我不知道如何解决
PublicIncludePaths.Add("D:/NVPACK/android-ndk-r9c/platforms/android-19/arch-arm/usr/include");
D:\NVPACK\android-ndk-r9c\platforms\android-19\arch-arm\usr\include\sys/cdefs.h(252): 致命错误 C1189: #error : "No function renaming possible"
这是导致错误的代码
#ifdef __lint__
#define __RENAME(x) __symbolrename(x)
#else
#error "No function renaming possible"
#endif /* __lint__ */
愚蠢的我!我试图编译 Unreal Editor 的源代码,换句话说就是 Windows。使用编辑器 Launch/Package for Android 是使用 Android NDK headers.
编译的正确方法
.Build.cs
if ((Target.Platform == UnrealTargetPlatform.Android))
{
PublicIncludePaths.Add("D:/NVPACK/android-ndk-r9c/platforms/android-19/arch-arm/usr/include");
}
.cpp
#include "Android/AndroidApplication.h"
...
JNIEnv* Env = FAndroidApplication::GetJavaEnv();
jint VersionJint = Env->GetVersion();
int8 Version = (int8)VersionJint;
GEngine->AddOnScreenDebugMessage(2, 0.5f, FColor::Cyan, FString::FromInt(Version));
看来我也需要所有#includes 的例外。
我正在尝试在 Visual Studio 2013 年编译 Unreal Engine 4 项目,包括 Android NDK,但是出现错误我不知道如何解决
PublicIncludePaths.Add("D:/NVPACK/android-ndk-r9c/platforms/android-19/arch-arm/usr/include");
D:\NVPACK\android-ndk-r9c\platforms\android-19\arch-arm\usr\include\sys/cdefs.h(252): 致命错误 C1189: #error : "No function renaming possible"
这是导致错误的代码
#ifdef __lint__
#define __RENAME(x) __symbolrename(x)
#else
#error "No function renaming possible"
#endif /* __lint__ */
愚蠢的我!我试图编译 Unreal Editor 的源代码,换句话说就是 Windows。使用编辑器 Launch/Package for Android 是使用 Android NDK headers.
编译的正确方法.Build.cs
if ((Target.Platform == UnrealTargetPlatform.Android))
{
PublicIncludePaths.Add("D:/NVPACK/android-ndk-r9c/platforms/android-19/arch-arm/usr/include");
}
.cpp
#include "Android/AndroidApplication.h"
...
JNIEnv* Env = FAndroidApplication::GetJavaEnv();
jint VersionJint = Env->GetVersion();
int8 Version = (int8)VersionJint;
GEngine->AddOnScreenDebugMessage(2, 0.5f, FColor::Cyan, FString::FromInt(Version));
看来我也需要所有#includes 的例外。