C ++,'time'没有在这个范围内声明,没有理由

问题描述 投票:0回答:1

我正在构建一个Arduino草图,我遇到了一个奇怪的错误:

'时间'未在此范围内声明

这些是我的包括:

#include <ESP8266HTTPClient.h>
#include <ESP8266WiFi.h>
#include <time.h>
#include <DS3232RTC.h> //http://github.com/JChristensen/DS3232RTC
#include <Streaming.h> //http://arduiniana.org/libraries/streaming/
#include <Time.h> //http://playground.arduino.cc/Code/Time
#include <Wire.h> //http://arduino.cc/en/Reference/Wire
#include <TimeLib.h>

这是我得到错误的函数:

void wifiTimeSetup() {
  configTime(timezone * 3600, 0, "pool.ntp.org", "time.nist.gov");
  Serial.println("Mi sto collegando al servizio per l'ora esatta tramite internet");
  while (!time(nullptr)) {
    Serial.print(".");
    delay(1000);
  }
  Serial.println("");
}

包含Time.h和TimeLib.h库时会出现错误,但我也需要它来使用我的RTC模块。

c++ time arduino include
1个回答
0
投票

包括time.h和Time.h通常都不是一个好主意。

这是由于您使用的编译器的区分大小写或不敏感。

显然这个冲突已经发布为一个已知问题:

https://github.com/PaulStoffregen/Time/issues/74

一些Arduino用户正试图将这个库与RTCZero这样的库一起使用,#include包含在像macOS和旧Windows这样的区分大小写的文件系统上。这是一个相关的问题:arduino-libraries / RTCZero#28编译器最终在RTCZero库中包含Time.h而不是POSIX time.h,这会导致编译错误。您是否愿意在库中重命名Time.h以避免冲突?

© www.soinside.com 2019 - 2024. All rights reserved.