Arduino项目中没有这样的文件或目录

时间:2017-10-03 09:35:17

标签: c++ arduino publish-subscribe

我在Arduino中很新,所以也许我的问题会很愚蠢,但我不得不问它!

我为mqtt芯片创建了一个nodeMcu客户端,我有这个错误

  

/Users/mikevorisis/Downloads/pubsubclient-master/examples/mqtt_esp8266/mqtt_esp8266.ino:27:26:   致命错误:PubSubClient.h:没有这样的文件或目录#include   

我从github下载了原始project,我尝试编译它在示例/ mqtt_esp8266中的示例,但我又遇到了同样的问题。

我也尝试将PubSubClient.h放在同一个文件夹中,但我又遇到了同样的问题。

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

1 个答案:

答案 0 :(得分:1)

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

现在扩展名为“filename.h.txt”。名称和扩展名只需要“filename.h”。使用另存为,并在保存时选择“所有文件”,并将其命名为“filename.h”。确保重新输入文件名,或者可以使用现有的“filename.h.txt”自动填充(即使你看不到它!)。

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

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

编辑:您尝试运行的示例还有#include <ESP8266WiFi.h>,这是您引用的github存储库中不可用的文件。我假设这是一个WiFi模块的库,或者你可以到其他地方(制造商,其他git或者它可能附带Arduino IDE?)。换句话说,您还需要将其标头和(可能).cpp文件添加到源目录。