如何在Arduino中包含clock_t
How do you include clock_t on an Arduino?
我正在尝试使用我自己创建的计时器库,它在其中使用了clock_t。当我编译草图时,我不断出错。这是我一直在获取error: 'clock_t' in namespace 'std' does not name a type
的错误。
甚至可以使用clock_t吗。我编写的库在c++编译器上运行得很好,但这里没有。
我对这个Arduino的东西很陌生,任何帮助都会很好。提前谢谢。
我不熟悉Arduino,但在C++中,你必须使用#include <ctime>
。在clock_t为您工作的C++实现中,ctime可能是通过另一个标头间接包含的,而Arduino对另一个报头的实现不包含ctime。
这是C++的一个问题;其他标准头中包含的头不是由标准定义的,因此,当您不能直接包含正确的头时,不同的实现可能会产生不同的结果,因为每个实现使用不同的间接包含。为了避免这种情况,您应该小心始终直接包含您使用的任何标准标头。这意味着您需要了解哪些标准标头提供哪些标准设施。http://en.cppreference.com/w/可以帮助你。
Arduino链接AVR-Libc,大多数看起来类似于C标准库的东西都来自它。
据我所知,AVR Libc中没有clock_t
。我在库的源文件中搜索,并查看了文档,但没有找到。AVR-Libc中也没有time.h
。
根据Arduino常见问题解答:
。。。Arduino语言只是一组可以从代码中调用的C/C++函数。您的草图会进行一些小的更改(例如自动生成函数原型),然后直接传递给C/C++编译器(avr-g++)。avr-g++支持的所有标准C和C++构造都应该在Arduino中工作。。。
在AVR libc常见问题解答:
我可以在AVR上使用C++吗?
然而,目前还不支持libstdc++,这是完整C++实现所需的标准支持库。这对可以编译的C++程序施加了许多限制。其中包括:
- 显然,没有任何与C++相关的标准函数、类和模板类可用
因此,Arduino没有为您提供C++标准库,因此ctime
(C++)不如time.h
(C)可用。也就是说,您很可能无法在Arduino环境中使用clock_t
。
- 如何导出包含具有"std::unique_ptr"值的"std::map"属性的
- 从包含m行的文件中提取n行,必要时(惰性地)重复该文件
- 编译包含字符串的代码时遇到问题
- c++库的公共头文件中应该包含什么
- 将包含C样式数组的对象初始化为成员变量(C++)
- 是否需要删除包含对象的"pair"?
- 函数何时会在c++中包含stack_Unwind_Resume调用
- 如何将包含epoch时间的十六进制字符串转换为time_t
- 使用mongocxx驱动程序时包含头文件问题
- 如何在h文件中包含.o对象文件
- 在混合代码库中将C转换为C++时出现许多包含错误
- VS2017,C++包含目录与附加包含目录,子文件夹包含失败-但为什么
- cmath抛出错误C2062、C2059、C2143和C2447.cmath包含在矢量文件中
- 为什么您需要C++头文件的包含保护
- 无法在UE4中包含BP类到CPP类
- g++ 说函数不存在,即使包含正确的标头
- 在C++代码中包含opencv时,使用ctypes创建.so文件
- Visual C++GC接口如何启用它以及要包含哪个库
- 当调用switch语句中的函数时(即使函数不包含循环),似乎是永不结束的循环的问题
- 为什么包含windows.h会产生语法错误,从而阻止类的实例化?(C2146,C2065)