HarmonyOS 鸿蒙Next NDK编译-std c99确认
HarmonyOS 鸿蒙Next NDK编译-std c99确认
在编译自研播放器过程中,发现有一个错误 error: use of undeclared identifier 'CLOCK_MONOTONIC_HR'
源代码如下:
#include <time.h>
#include <sys/time.h>
#ifdef CLOCK_MONOTONIC_COARSE
clock_gettime(CLOCK_MONOTONIC_COARSE, &now);
#else
clock_gettime(CLOCK_MONOTONIC_HR, &now);
#endif
我们实践发现:在CMAKE_C_FLAGS
里添加了-std=c99
就会有这个错误,当去掉时可以编译通过。那就是添加了这个-std=c99
会识别不到CLOCK_MONOTONIC_COARSE
,实际<sys/time.h>
文件里定义#define CLOCK_MONOTONIC_COARSE 6
目前我们写的C比较多是c99标准的代码。
面临问题:当前鸿蒙ndk编译不支持c99标准吗?华为侧如何支持这一特性解决这个报错?
更多关于HarmonyOS 鸿蒙Next NDK编译-std c99确认的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
可使用gnu99,gnu99为c99的扩展版,c99在某些扩展库中不支持
更多关于HarmonyOS 鸿蒙Next NDK编译-std c99确认的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
针对帖子标题“HarmonyOS 鸿蒙Next NDK编译-std c99确认”的问题,以下是专业且简洁的回答:
在HarmonyOS鸿蒙系统中,若要使用Next NDK进行编译并确认使用C99标准,你需要确保你的编译环境已正确配置为支持C99。HarmonyOS的NDK通常包含了对多种C/C++标准的支持,包括C99。
要确认NDK是否使用C99标准编译,你可以在编译命令中添加相应的编译器标志。对于GCC或Clang编译器(HarmonyOS NDK中常用的编译器),你可以使用-std=c99
标志来指定C99标准。例如,在编译命令中,你可以这样写:
clang -std=c99 your_source_file.c -o your_output_file
或者,如果你使用的是Makefile或其他构建系统,确保在相应的编译选项中包含了-std=c99
。
此外,确保你的源代码符合C99标准,以避免编译错误。如果编译过程中遇到与C99标准相关的问题,检查源代码中的语法和特性是否符合C99标准的要求。
如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html,