Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/arduino/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ Arduino项目中没有此类文件或目录_C++_Arduino_Publish Subscribe - Fatal编程技术网

C++ Arduino项目中没有此类文件或目录

C++ Arduino项目中没有此类文件或目录,c++,arduino,publish-subscribe,C++,Arduino,Publish Subscribe,我对Arduino很陌生,所以也许我的问题会很愚蠢,但我必须问它 我为我的nodeMcu芯片制作了一个mqtt客户端,我有这个错误 /Users/mikevorisis/Downloads/pubsubclient master/examples/mqtt\u esp8266/mqtt\u esp8266.ino:27:26: 致命错误:PubSubClient.h:没有包含这样的文件或目录 我从github下载了原始版本,并尝试编译它在examples/mqttêu esp8266中的示例,

我对Arduino很陌生,所以也许我的问题会很愚蠢,但我必须问它

我为我的nodeMcu芯片制作了一个mqtt客户端,我有这个错误

/Users/mikevorisis/Downloads/pubsubclient master/examples/mqtt\u esp8266/mqtt\u esp8266.ino:27:26: 致命错误:PubSubClient.h:没有包含这样的文件或目录

我从github下载了原始版本,并尝试编译它在examples/mqttêu esp8266中的示例,但我还是遇到了同样的问题

我还试图将PubSubClient.h放在同一个文件夹中,但我还是遇到了同样的问题

有什么想法吗?
提前感谢。

您下载并包含在项目中的文件实际上可能不是头文件。您可能从github复制了它的内容,并将其粘贴到文本文档中,然后将其保存为扩展名为.h的文本文件

它现在具有扩展名filename.h.txt。名称和扩展名只能是filename.h。使用“另存为”,保存时选择所有文件,并将其命名为filename.h。请确保重新键入文件名,否则即使您看不到文件名,也可以用已经存在的filename.h.txt自动填充该文件名

如果文件现在具有正确的扩展名,请将其与源代码文件放在同一文件夹中。您可以通过在IDE中另存为来查看源文件所在的目录

在此之后可能会遇到的一个问题是缺少定义。您可以看到,当您以头文件的形式使用库时,每个头文件通常必须附带一个不一定具有相同名称的.cpp文件。原因是头文件包含声明,而cpp文件包含所述声明的定义。换句话说,头文件是库中可用设施的概述,而cpp文件实际上实现了它的核心


编辑:您尝试运行的示例还包含一个include文件,该文件在您提到的github存储库中不可用。我假设这是一个用于WiFi模块的库,或者您可以从其他制造商、其他git或Arduino IDE?附带的库中获得?。换句话说,您还需要将其头文件和.cpp文件添加到源目录。

Hi Tellus谢谢您的回答,我检查了扩展名及其.h,我也按照您所说的重命名了,但没有任何更改。我也把它们放在同一个文件夹里。实际上,我尝试从github中的repo运行该示例,因此如果您有时间检查它,您会看到错误。您是否也获得了头文件的.cpp文件,并且它是否与头文件和源文件位于同一目录中?是的,我将它们放在同一文件夹中。。我会检查我是否把它们放在同一个文件夹中,因为espwifi会做更多的事情。您是在编写include还是include filename.h?ESP8266WiFi库是Arduino的ESP8266核心的一部分。这是一个完整的硬件包,用于添加对将ESP8266直接编程到Arduino IDE的支持。在这种情况下,您需要安装完整的硬件包。光是图书馆对你没有任何好处。请严格按照以下说明操作: