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

标签 c++ arduino publish-subscribe

我是 Arduino 的新手,所以我的问题可能很愚蠢,但我不得不问!

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

/Users/mikevorisis/Downloads/pubsubclient-master/examples/mqtt_esp8266/mqtt_esp8266.ino:27:26: fatal error: PubSubClient.h: No such file or directory #include

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

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

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

最佳答案

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

它现在的扩展名为“filename.h.txt”。名称和扩展名只需为“filename.h”。使用另存为,保存时选择“所有文件”,命名为“filename.h”。请务必重新输入文件名,否则它会自动填充现有的“filename.h.txt”(即使您没有看到它!)。

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


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


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

关于c++ - Arduino 项目中没有这样的文件或目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46541473/

相关文章:

c++ - 使用 C++ 和 SQL Native Client 为 SQLPutData 准备的 SQLBindParameter

c++ - 使用 STK 和 FMVoices 类的内存访问错误

c++ - 从 arduino 读取到 c++ 程序时保持接收 NULL

c++ - 返回一个字符串/通过引用传递

ssl - 在 OpenStack 服务器中发布到 Mosquitto

c# - 通过 MSMQ 进行通信的 Windows 服务 - 我需要服务总线吗?

c++ - Variadic 模板行为怪异

Arduino 零 Wifi

architecture - 在微服务中,我应该使用 pub/sub 而不是 RPC 来获得更松散耦合的架构吗?

c++ - int c++ 之前预期的不合格 id