HarmonyOS 工程里ndk怎么指定c++版本?

在cmakeLists.txt加了

set(CMAKE_CXX_STANDARD 11),

编译器还是报c++版本的相关语法错误

阅读 738
1 个回答

在C++中,不允许直接使用 typedef enum 来定义枚举类型并进行重命名,然后再使用它。因为在C++中typedef 不能用于未命名的枚举类型。

可以通过以下方式来定义枚举类型并进行重命名:

// 定义枚举类型
enum JSGCPhaseEnum {
JS_GC_PHASE_NONE,
JS_GC_PHASE_DECREF,
JS_GC_PHASE_REMOVE_CYCLES
};

// 使用 typedef 为枚举类型取别名
typedef JSGCPhaseEnum JSGCPhaseEnum;

// 定义另一个枚举类型
enum OPCodeEnum {
// 枚举值
};

// 使用 typedef 为另一个枚举类型取别名
typedef OPCodeEnum OPCodeEnum;

NDK开发可参考

https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V1/1\_24native-api\_u76f8\_u5173\_u6307\_u5bfc-0000001630305981-V1

test()方法没有写在 \#ifdef \_\_cplusplus区间中,编译cpp的时候就不会有这个函数了

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进