NDK 在“^”标记之前预期不合格的 ID
NDK Expected unqualified-id before '^' token
我是 NDK 的新手,也是 JAVA 的新手,所以请多多包涵。
我有 c++ 文件,我想通过 NDK build.gradle 构建它。我的 build.gradle 文件中有以下内容:
defaultConfig {
applicationId "com.example.blabla.blabla"
minSdkVersion 21
targetSdkVersion 22
versionCode 1
versionName "1.0"
ndk {
moduleName "test"
cFlags "-std=c++11 -fexceptions"
stl "gnustl_shared"
}
}
我在 local.properties 中有这一行:
ndk.dir= pathToMyNDK/AndroidStudio/ndk
在我的一个 C++ 文件中,我有一个这样的块定义:
typedef void (^ABCD)(string, string);
以及接受该类型参数的函数:
void generateAlphabetLetters(ABCD alph){}
当我尝试使用 NDK 构建文件时,出现以下无法解决的错误:
“^”标记前的预期不合格 ID
正如编译器告诉您的那样,这是一个语法错误。
typedef void (^ABCD)(string, string);
不是有效的 c++。
您有标准 C++ 中的 lambda。
块是 Apple 的 C 扩展。如果你想在 Android 中使用它们,你应该重写代码以使用 C++11 lambdas(由 NDK 的 gcc 和 clang 支持)或使用 CrystaX NDK,其中 Objective-C 和 Objective-C++ 支持(包括 Objective-C 块)。
我是 NDK 的新手,也是 JAVA 的新手,所以请多多包涵。 我有 c++ 文件,我想通过 NDK build.gradle 构建它。我的 build.gradle 文件中有以下内容:
defaultConfig {
applicationId "com.example.blabla.blabla"
minSdkVersion 21
targetSdkVersion 22
versionCode 1
versionName "1.0"
ndk {
moduleName "test"
cFlags "-std=c++11 -fexceptions"
stl "gnustl_shared"
}
}
我在 local.properties 中有这一行:
ndk.dir= pathToMyNDK/AndroidStudio/ndk
在我的一个 C++ 文件中,我有一个这样的块定义:
typedef void (^ABCD)(string, string);
以及接受该类型参数的函数:
void generateAlphabetLetters(ABCD alph){}
当我尝试使用 NDK 构建文件时,出现以下无法解决的错误: “^”标记前的预期不合格 ID
正如编译器告诉您的那样,这是一个语法错误。
typedef void (^ABCD)(string, string);
不是有效的 c++。
您有标准 C++ 中的 lambda。
块是 Apple 的 C 扩展。如果你想在 Android 中使用它们,你应该重写代码以使用 C++11 lambdas(由 NDK 的 gcc 和 clang 支持)或使用 CrystaX NDK,其中 Objective-C 和 Objective-C++ 支持(包括 Objective-C 块)。