注释
我用 Arduino 和所有警告编译,自上次清理以来没有问题,也没有警告 你也可以分享你看到的警告吗? 谢谢 |
刚刚更新了来自 ESP32 的最新 git 并且没有冲突 – 可能是您正在使用的本地库? |
是的,我看到该项目专注于 Arduino IDE,所以它在那里编译得很好并不奇怪,很确定它只是使用不同的 IDE 弹出的东西。但事实上这很容易解决了这个问题,这让我认为消除常见文件名的歧义可能是一个好主意。task.h 位于 ~/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/freertos (使用 MacOS)。 这是构建输出的粘贴:https ://pastebin.com/8Zddh1nb |
我不想劫持这个问题,但我也尝试使用 platformio 并失败了。 问题仍然存在,这里有一个带有当前代码的新构建输出:
|
正是这个问题。将limits.h 和limits.cpp 重命名为grbl_limits,更改grbl.h 中的include,如果将#ifndef LIMITS_H 更改为GRBL_LIMITS_H 不会有任何影响,它应该可以编译。 |
@lienbacher你是对的,这解决了问题。 你会做PR吗? |
我之前还必须处理其他一些类似的问题。继续做一个公关。由于旅行,可能要一个多星期才能合并它。 请在每个文件的顶部附近添加注释,说明文件重命名的原因。 |
再次提交 PR,感谢您的出色工作! |
我在最新的主分支中遇到了类似的错误:
我对这个世界很陌生,所以也许我做错了什么。我正在使用 PlatformIO。这是我的 main.cpp 中唯一的内容:
我像这样安装了这个库:
|
没有 main.cpp。这是一个与 Arduino 兼容的项目。 |
我明白了。但是基于这个问题以及这个项目有一个platformio.ini文件的事实,我知道它也适用于 PlatformIO 上的人们。我遇到的问题可能是我没有那么有经验而且我做错了什么。让我们稍微备份一下。 在这个存储库的自述文件中没有具体的步骤如何编译它。上面写着:
所以我按照他们的步骤如何编译他们的项目。步骤之一是:
该示例仅包含以下行: #include <grbl.h>
这也是如何配置该项目以进行编译吗? 如上所述,我将此项目安装为 PlatformIO 库,但 grbl.h 不可用。感谢 VSCode 的自动完成功能,我能够在这样的文件夹中找到它: #include <Grbl_Esp32/grbl.h>
|
您是否尝试过“platformio run”而不更改树中的任何内容? |
感谢您的提示!我从您的说明中了解到,我不应该将此项目用作库,而是直接编译它。我理解正确吗? 所以我克隆了这个存储库,在 VSCode 中打开它,然后单击 Build 选项。这是输出:
所以我以这种方式得到一个不同的错误。 |
你做了正确的事情。如果你再试一次,它有可能会起作用。我已经看到 VSCode 发生了类似的奇怪事情。我怀疑这是 Intellisense 和 platformio 之间的交互。我认为 Intellisense – 或其他一些“帮助”进程 – 可能会尝试访问出现在树中的文件,以便为它们编制索引。当它打开一个文件时,它会暂时锁定文件并阻止编译过程访问它们。“智能”IDE 需要付出一定的代价。 |
就是这样。谢谢! 我的问题的解决方法是转到 VSCode 设置,搜索“排除”关键字并添加 |
连巴赫 评论 2018 年 12 月 29 日
你好!
首先,多么伟大的项目!非常感谢!我最近放弃了 Arduino IDE,转而使用 PlatformIO 和 VSCode。许多东西很容易互换。因此,我尝试使用 PIO 编译代码并得到一个编译器错误,指出在 Tasks.h 的此范围内未定义 INT_MAX。所以我去检查,发现Tasks.h包含一个limits.h,但似乎恰好包含grbl_esp32s自己的limits.h而不是esp32库中的一个,因此无法编译。
我已将本地 limits.h 重命名为 grbl_limits.h,对 grbl_limits.cpp 做了同样的事情,并编辑了 grbl.h 中的包含,现在它编译得很好,只有一堆关于未使用变量(主要是任务句柄)的警告。
认为这可能是值得考虑的事情。
再次,很棒的项目!非常感谢!