问题描述
Arduino项目导入PlatformIO编译遇到error: redefinition of ‘xxx’…note: ‘float humidity’ previously defined here,编译报错二十条,全是一个错误:
原因分析:
网上查到的都说是目标头文件.h没有加条件编译语句:
#ifndef _TEST_H_
#define _TEST_H_
//。。。
#endif
然后我发现我引入的头文件已经是加了条件编译语句,后来发现工程项目中有两个.ino文件,这两个文件名虽然不同,但是内容一样(我的导入前是没有co2-sensor-main.ino这个文件的,不知道怎么产生的),然后我删掉一个,编译就通过了。
主要就是这两句话,***In file included from C:/Users/Administrator/Documents/PlatformIO/Projects/220614-094530-huzzah/src/co2-sensor-main.ino:4:
src\thermometer.h:8:7: error: redefinition of ‘Adafruit_SSD1306 display’
***In file included from C:/Users/Administrator/Documents/PlatformIO/Projects/220614-094530-huzzah/src/co2-sensor.ino:4:
src\thermometer.h:8:7: note: ‘Adafruit_SSD1306 display’ previously declared here
重新定义“Adafruit_SSD1306 display”
注意:'Adafruit_SSD1306 display’之前在这里声明过
加粗的字体从这里我们可以我感觉两个文件中有重复引用,然后我打开对比后,发现一样的代码,所以删掉一个后,尝试编译,这次通过了。
有大佬指点一下为什么会多生成一个.ino文件吗