Contact me: hankecnc@gmail.com

使用 Arduino IDE 1.8.3 编译 grbl 1.1e 时的错误信息 #228

推推 grbl 3年前 (2023-01-21) 284次浏览

关闭
tingox 打开了这个问题 2017 年 7 月 11 日 · 19条评论
关闭

使用 Arduino IDE 1.8.3 编译 grbl 1.1e 时的错误信息#228

tingox 打开了这个问题 2017 年 7 月 11 日 · 19条评论

注释

使用 Arduino IDE 1.8.3 编译 grbl 1.1e 时的错误信息 #228

当我从 Arduino IDE 1.8.3 编译/上传 grbl 1.1e 时,我收到一些错误消息。上传完成后 grbl 似乎可以正常工作(我可以发送命令,grbl 响应,响应看起来不错)。
注意:我不得不从解压缩的 1.1e 发布 zip 文件中手动复制“grbl”文件夹,因为自动版本“管理库”和“添加 .ZIP 库”只产生一条错误消息。
编译 grbl 的错误消息:

In file included from /home/tingo/Arduino/libraries/grbl/grbl.h:43:0,
                 from /home/tingo/work/bitraf/2017/20170710_grbl/grbl/grbl-1.1e.20170114/grbl/examples/grblUpload/grblUpload.ino:27:
/home/tingo/Arduino/libraries/grbl/nuts_bolts.h:25:0: warning: "false" redefined
 #define false 0
 ^
In file included from /zs/tingo/progs_lin/arduino-1.8.3/hardware/arduino/avr/cores/arduino/Arduino.h:24:0,
                 from sketch/grblUpload.ino.cpp:1:
/zs/tingo/progs_lin/arduino-1.8.3/hardware/tools/avr/lib/gcc/avr/4.9.2/include/stdbool.h:42:0: note: this is the location of the previous definition
 #define false false
 ^
In file included from /home/tingo/Arduino/libraries/grbl/grbl.h:43:0,
                 from /home/tingo/work/bitraf/2017/20170710_grbl/grbl/grbl-1.1e.20170114/grbl/examples/grblUpload/grblUpload.ino:27:
/home/tingo/Arduino/libraries/grbl/nuts_bolts.h:26:0: warning: "true" redefined
 #define true 1
 ^
In file included from /zs/tingo/progs_lin/arduino-1.8.3/hardware/arduino/avr/cores/arduino/Arduino.h:24:0,
                 from sketch/grblUpload.ino.cpp:1:
/zs/tingo/progs_lin/arduino-1.8.3/hardware/tools/avr/lib/gcc/avr/4.9.2/include/stdbool.h:43:0: note: this is the location of the previous definition
 #define true true
 ^
In file included from /home/tingo/Arduino/libraries/grbl/grbl.h:43:0,
                 from /home/tingo/work/bitraf/2017/20170710_grbl/grbl/grbl-1.1e.20170114/grbl/examples/grblUpload/grblUpload.ino:27:
/home/tingo/Arduino/libraries/grbl/nuts_bolts.h:56:0: warning: "max" redefined
 #define max(a,b) (((a) > (b)) ? (a) : (b))
 ^
In file included from sketch/grblUpload.ino.cpp:1:0:
/zs/tingo/progs_lin/arduino-1.8.3/hardware/arduino/avr/cores/arduino/Arduino.h:93:0: note: this is the location of the previous definition
 #define max(a,b) ((a)>(b)?(a):(b))
 ^
In file included from /home/tingo/Arduino/libraries/grbl/grbl.h:43:0,
                 from /home/tingo/work/bitraf/2017/20170710_grbl/grbl/grbl-1.1e.20170114/grbl/examples/grblUpload/grblUpload.ino:27:
/home/tingo/Arduino/libraries/grbl/nuts_bolts.h:57:0: warning: "min" redefined
 #define min(a,b) (((a) < (b)) ? (a) : (b))
 ^
In file included from sketch/grblUpload.ino.cpp:1:0:
/zs/tingo/progs_lin/arduino-1.8.3/hardware/arduino/avr/cores/arduino/Arduino.h:92:0: note: this is the location of the previous definition
 #define min(a,b) ((a)<(b)?(a):(b))
 ^
In file included from /home/tingo/Arduino/libraries/grbl/grbl.h:43:0,
                 from /home/tingo/work/bitraf/2017/20170710_grbl/grbl/grbl-1.1e.20170114/grbl/examples/grblUpload/grblUpload.ino:27:
/home/tingo/Arduino/libraries/grbl/nuts_bolts.h:61:0: warning: "bit" redefined
 #define bit(n) (1 << n)
 ^
In file included from sketch/grblUpload.ino.cpp:1:0:
/zs/tingo/progs_lin/arduino-1.8.3/hardware/arduino/avr/cores/arduino/Arduino.h:123:0: note: this is the location of the previous definition
 #define bit(b) (1UL << (b))
 ^
Sketch uses 30320 bytes (93%) of program storage space. Maximum is 32256 bytes.
Global variables use 1631 bytes (79%) of dynamic memory, leaving 417 bytes for local variables. Maximum is 2048 bytes.
Low memory available, stability problems may occur.

我的机器运行 Fedora 25:
[tingo@kg-elitebook ~]$ uname -a
Linux kg-elitebook.kg4.no 4.11.8-200.fc25.x86_64 #1 SMP Thu Jun 29 16:13:56 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
希望这有帮助

使用 Arduino IDE 1.8.3 编译 grbl 1.1e 时的错误信息 #228
贡献者

看起来你有多个 Grbl 安装。一个在工作目录中,另一个在 Arduino 库中。

使用 Arduino IDE 1.8.3 编译 grbl 1.1e 时的错误信息 #228
作者

我不认为这是问题所在。我再次尝试,这次从库目录加载 grblUpload:

In file included from /home/tingo/Arduino/libraries/grbl/grbl.h:43:0,
                 from /home/tingo/Arduino/libraries/grbl/examples/grblUpload/grblUpload.ino:27:
/home/tingo/Arduino/libraries/grbl/nuts_bolts.h:25:0: warning: "false" redefined
 #define false 0
 ^
In file included from /zs/tingo/progs_lin/arduino-1.8.3/hardware/arduino/avr/cores/arduino/Arduino.h:24:0,
                 from sketch/grblUpload.ino.cpp:1:
/zs/tingo/progs_lin/arduino-1.8.3/hardware/tools/avr/lib/gcc/avr/4.9.2/include/stdbool.h:42:0: note: this is the location of the previous definition
 #define false false
 ^
In file included from /home/tingo/Arduino/libraries/grbl/grbl.h:43:0,
                 from /home/tingo/Arduino/libraries/grbl/examples/grblUpload/grblUpload.ino:27:
/home/tingo/Arduino/libraries/grbl/nuts_bolts.h:26:0: warning: "true" redefined
 #define true 1
 ^
In file included from /zs/tingo/progs_lin/arduino-1.8.3/hardware/arduino/avr/cores/arduino/Arduino.h:24:0,
                 from sketch/grblUpload.ino.cpp:1:
/zs/tingo/progs_lin/arduino-1.8.3/hardware/tools/avr/lib/gcc/avr/4.9.2/include/stdbool.h:43:0: note: this is the location of the previous definition
 #define true true
 ^
In file included from /home/tingo/Arduino/libraries/grbl/grbl.h:43:0,
                 from /home/tingo/Arduino/libraries/grbl/examples/grblUpload/grblUpload.ino:27:
/home/tingo/Arduino/libraries/grbl/nuts_bolts.h:56:0: warning: "max" redefined
 #define max(a,b) (((a) > (b)) ? (a) : (b))
 ^
In file included from sketch/grblUpload.ino.cpp:1:0:
/zs/tingo/progs_lin/arduino-1.8.3/hardware/arduino/avr/cores/arduino/Arduino.h:93:0: note: this is the location of the previous definition
 #define max(a,b) ((a)>(b)?(a):(b))
 ^
In file included from /home/tingo/Arduino/libraries/grbl/grbl.h:43:0,
                 from /home/tingo/Arduino/libraries/grbl/examples/grblUpload/grblUpload.ino:27:
/home/tingo/Arduino/libraries/grbl/nuts_bolts.h:57:0: warning: "min" redefined
 #define min(a,b) (((a) < (b)) ? (a) : (b))
 ^
In file included from sketch/grblUpload.ino.cpp:1:0:
/zs/tingo/progs_lin/arduino-1.8.3/hardware/arduino/avr/cores/arduino/Arduino.h:92:0: note: this is the location of the previous definition
 #define min(a,b) ((a)<(b)?(a):(b))
 ^
In file included from /home/tingo/Arduino/libraries/grbl/grbl.h:43:0,
                 from /home/tingo/Arduino/libraries/grbl/examples/grblUpload/grblUpload.ino:27:
/home/tingo/Arduino/libraries/grbl/nuts_bolts.h:61:0: warning: "bit" redefined
 #define bit(n) (1 << n)
 ^
In file included from sketch/grblUpload.ino.cpp:1:0:
/zs/tingo/progs_lin/arduino-1.8.3/hardware/arduino/avr/cores/arduino/Arduino.h:123:0: note: this is the location of the previous definition
 #define bit(b) (1UL << (b))
 ^
Sketch uses 30320 bytes (93%) of program storage space. Maximum is 32256 bytes.
Global variables use 1631 bytes (79%) of dynamic memory, leaving 417 bytes for local variables. Maximum is 2048 bytes.
Low memory available, stability problems may occur.

仍然是那些错误信息。

使用 Arduino IDE 1.8.3 编译 grbl 1.1e 时的错误信息 #228
贡献者

如果您以任何方式更改了 Grbl 示例上传草图,也会发生此类错误。它应该只有 grbl.h 文件的包含行。同样,请确保从所有 Arduino 搜索路径中删除所有 Grbl 源文件。只能有一个。

使用 Arduino IDE 1.8.3 编译 grbl 1.1e 时的错误信息 #228
作者

grblUpload 草图没有改变。
我从 Arduino IDE 库中删除了所有内容(只是 grbl 文件夹):

[tingo@kg-elitebook ~]$ ls -la ~/Arduino/libraries/
total 12
drwxrwxr-x. 2 tingo tingo 4096 Jul 11 18:13 .
drwxrwxr-x. 3 tingo tingo 4096 Jul 11 15:50 ..
-rw-rw-r--. 1 tingo tingo   87 Jul 11 15:50 readme.txt

然后我删除了 Arduino IDE 首选项目录的内容

[tingo@kg-elitebook ~]$ ls -la ~/.arduino15/
total 8
drwxrwxr-x.  2 tingo tingo 4096 Jul 11 18:18 .
drwx------. 30 tingo tingo 4096 Jul 11 17:09 ..

接下来,我再次将 grbl 文件夹复制回 Arduino IDE 库文件夹,并启动 Arduino IDE。打开 grblUpload 草图,然后按“上传”:

In file included from /home/tingo/Arduino/libraries/grbl/grbl.h:43:0,
                 from /home/tingo/Arduino/libraries/grbl/examples/grblUpload/grblUpload.ino:27:
/home/tingo/Arduino/libraries/grbl/nuts_bolts.h:25:0: warning: "false" redefined
 #define false 0
 ^
In file included from /zs/tingo/progs_lin/arduino-1.8.3/hardware/arduino/avr/cores/arduino/Arduino.h:24:0,
                 from sketch/grblUpload.ino.cpp:1:
/zs/tingo/progs_lin/arduino-1.8.3/hardware/tools/avr/lib/gcc/avr/4.9.2/include/stdbool.h:42:0: note: this is the location of the previous definition
 #define false false
 ^
In file included from /home/tingo/Arduino/libraries/grbl/grbl.h:43:0,
                 from /home/tingo/Arduino/libraries/grbl/examples/grblUpload/grblUpload.ino:27:
/home/tingo/Arduino/libraries/grbl/nuts_bolts.h:26:0: warning: "true" redefined
 #define true 1
 ^
In file included from /zs/tingo/progs_lin/arduino-1.8.3/hardware/arduino/avr/cores/arduino/Arduino.h:24:0,
                 from sketch/grblUpload.ino.cpp:1:
/zs/tingo/progs_lin/arduino-1.8.3/hardware/tools/avr/lib/gcc/avr/4.9.2/include/stdbool.h:43:0: note: this is the location of the previous definition
 #define true true
 ^
In file included from /home/tingo/Arduino/libraries/grbl/grbl.h:43:0,
                 from /home/tingo/Arduino/libraries/grbl/examples/grblUpload/grblUpload.ino:27:
/home/tingo/Arduino/libraries/grbl/nuts_bolts.h:56:0: warning: "max" redefined
 #define max(a,b) (((a) > (b)) ? (a) : (b))
 ^
In file included from sketch/grblUpload.ino.cpp:1:0:
/zs/tingo/progs_lin/arduino-1.8.3/hardware/arduino/avr/cores/arduino/Arduino.h:93:0: note: this is the location of the previous definition
 #define max(a,b) ((a)>(b)?(a):(b))
 ^
In file included from /home/tingo/Arduino/libraries/grbl/grbl.h:43:0,
                 from /home/tingo/Arduino/libraries/grbl/examples/grblUpload/grblUpload.ino:27:
/home/tingo/Arduino/libraries/grbl/nuts_bolts.h:57:0: warning: "min" redefined
 #define min(a,b) (((a) < (b)) ? (a) : (b))
 ^
In file included from sketch/grblUpload.ino.cpp:1:0:
/zs/tingo/progs_lin/arduino-1.8.3/hardware/arduino/avr/cores/arduino/Arduino.h:92:0: note: this is the location of the previous definition
 #define min(a,b) ((a)<(b)?(a):(b))
 ^
In file included from /home/tingo/Arduino/libraries/grbl/grbl.h:43:0,
                 from /home/tingo/Arduino/libraries/grbl/examples/grblUpload/grblUpload.ino:27:
/home/tingo/Arduino/libraries/grbl/nuts_bolts.h:61:0: warning: "bit" redefined
 #define bit(n) (1 << n)
 ^
In file included from sketch/grblUpload.ino.cpp:1:0:
/zs/tingo/progs_lin/arduino-1.8.3/hardware/arduino/avr/cores/arduino/Arduino.h:123:0: note: this is the location of the previous definition
 #define bit(b) (1UL << (b))
 ^
Sketch uses 30320 bytes (93%) of program storage space. Maximum is 32256 bytes.
Global variables use 1631 bytes (79%) of dynamic memory, leaving 417 bytes for local variables. Maximum is 2048 bytes.
Low memory available, stability problems may occur.

如果需要,我也可以尝试完全删除 Arduino IDE。

使用 Arduino IDE 1.8.3 编译 grbl 1.1e 时的错误信息 #228
贡献者

@tingox: 好吧不知道你要告诉你什么。我刚刚下载了最新版本的 Arduino IDE 1.8.3 (Mac OS X) 来测试它们是否改变了什么。他们没有。通过“添加 .ZIP 库”导入并使用 UNO 板编译 GrblUpload 示例草图可以正常工作。没有错误。

您的系统肯定有问题。不确定它是 Linux 版本还是你安装的东西。如果是 Linux 版本,早在 5 月份发布 IDE 版本时我们就会听到问题。所以这会给你的系统留下一些东西。

您始终可以使用 Makefile。它将确保不包含 Arduino 库文件。

不幸的是,我没有时间进一步帮助你。我有一些与工作相关的截止日期需要完成。

使用 Arduino IDE 1.8.3 编译 grbl 1.1e 时的错误信息 #228
贡献者

还要确保您正在复制grbl下载的 ZIP 中的文件夹。不是解压后的文件夹。正如 wiki 说明明确指出的那样。

使用 Arduino IDE 1.8.3 编译 grbl 1.1e 时的错误信息 #228
作者
丁高斯 评论了 2017 年 7 月 12 日 通过电子邮件
使用 Arduino IDE 1.8.3 编译 grbl 1.1e 时的错误信息 #228
贡献者

@tingox: wiki在此处明确说明要在第一步中解压缩下载的 .ZIP 文件。然后它列出了在步骤 3 中添加文件夹的过程。您在尝试“添加 .ZIP 库”时遇到的错误应该是您做错了什么的信号。

请理解,Linux 安装可能而且确实会变得非常棘手,这取决于用户在他们的机器上安装了什么以及他们过去知道或忘记的改变/黑客攻击的东西。如果我要求您检查的 3 件事没有奏效,这些都是常见问题(并且很容易搜索),那么很可能是您的 Linux 安装有问题。不可能知道用户对 Linux 的体验水平以及他们是否知道他们在说什么。解决这些问题通常会成为来回的大量时间。通常解决方案是与 Grbl 完全无关的问题。这就是我所说的没有时间帮助您。

使用 Arduino IDE 1.8.3 编译 grbl 1.1e 时的错误信息 #228
贡献者
密歇根 评论了 2017 年 11 月 18 日  

@chamnit @tingox

Arduino 集成开发环境 1.8.5

tl;dr:我认为 Arduino IDE 在某些情况下会在 .ino 文件的顶部添加 include 行。

我在构建 grblUpload.ino 时看到了类似的问题。我正在使用克隆的存储库,并将 grbl 目录符号链接到我的 Arduino 库目录中(工作正常。)但是在不更改任何内容的情况下进行编译会导致出现问题,因为缺少定义。我可以通过更改 config.h 中包含 grbl.h 的位置来克服它,但后来我阅读了本期的讨论。

我的 grblUpload.ino 在顶部插入了一堆包含。我没有这样做,git 说它们不在文件的 repo 版本中。剩下的就是 Arduino IDE。它是否将这些包含作为某种(错误的)优化尝试添加?也许在添加库时?我只是将两个改变的(一个是我的,一个是其他的)文件重置为 HEAD,验证了额外的包含不在 grblUpload.ino 中,并且重新编译没有问题。我怀疑是 Ardunio IDE 让我着迷。

我还没有完全弄明白,但我认为值得注意(对于像我一样搜索问题的任何人)仅仅因为你没有修改 grblUpload.ino 文件,并不意味着其他东西没有.

使用 Arduino IDE 1.8.3 编译 grbl 1.1e 时的错误信息 #228

@michmerr

我在使用 Arduino IDE v1.8.5 时看到了相同的“警告:[…] 重新定义”消息

通过以下方式修复了问题:
文件 -> 首选项 -> 取消选中“积极缓存已编译的核心”

我添加了一条注释:https ://github.com/gnea/grbl/wiki/Compiling-Grbl

使用 Arduino IDE 1.8.3 编译 grbl 1.1e 时的错误信息 #228
贡献者

@bgrumbine: 感谢更新 wiki。

使用 Arduino IDE 1.8.3 编译 grbl 1.1e 时的错误信息 #228

@tingox:非常感谢您提供有关仅单击提取文件夹内左侧窗格中的 grbl 名称的提示。我试了半个小时不知道有多少类似操作的组合,一直提示“指定的文件夹不包含有效的库”。我什至注意到它会自动填写目录名称并尝试打开“grbl-master/grbl-master”或“grbl-master/grbl/grbl”……但是尽管我做了所有尝试,但我还是没能成功正是你的,现在可以使用了。谢谢!

使用 Arduino IDE 1.8.3 编译 grbl 1.1e 时的错误信息 #228

可能还有更多。我在两台不同的计算机上为此苦苦挣扎了大约一个小时。我详细阅读了上面的所有评论。虽然我可以成功引入库,但由于“警告:“max”重新定义”或类似错误,我无法编译 grblUpload。

不幸的是,我同时进行了两项更改。至少对我来说,其中一个或两个都包含解决问题的秘诀。

确保从“C:\Users[user]* Documents *\Arduino\libraries\grbl\examples\grblUpload\grblUpload.ino”打开“grblUpload.ino”,而不是从将 zip 文件解压到的目录打开. (例如 C:\Users[user]* Downloads *\grbl-master\grbl-master\grbl\examples\grblUpload\grblUpload.ino)这似乎破坏了 Arduino IDE 处理搜索路径的方式,但我不熟悉细节。

然后,根据提示@michmerr(见上文),我进入首选项(以前从未在那里看过)希望找到“积极缓存编译核心”但至少在 Windows 上它不存在。在那里我打开了行号!(我希望这不是修复它的原因)

之后就开始编译了。

但是我发现自己有一个 Arduino Mega(并且 GRBL 出于某种疯狂的原因与它不兼容)所以明天去 Jaycar 买一个 Uno。

我希望这有帮助。

戴夫

使用 Arduino IDE 1.8.3 编译 grbl 1.1e 时的错误信息 #228

戴夫,如果你有一个 Mega,还有另一个分支专门用于 GRBL 的 Mega 版本。

使用 Arduino IDE 1.8.3 编译 grbl 1.1e 时的错误信息 #228

哇哦!谢谢你的提示!我错过了。谢谢!

使用 Arduino IDE 1.8.3 编译 grbl 1.1e 时的错误信息 #228
oridag 评论了 2021 年 9 月 13 日  

然后,根据提示@michmerr(见上文),我进入首选项(以前从未在那里看过)希望找到“积极缓存编译核心”但至少在 Windows 上它不存在。在那里我打开了行号!(我希望这不是修复它的原因)

繁荣!成功了。多么奇怪…

使用 Arduino IDE 1.8.3 编译 grbl 1.1e 时的错误信息 #228

繁荣!成功了。多么奇怪…

同样的事情-这在 mac 上也对我有用

使用 Arduino IDE 1.8.3 编译 grbl 1.1e 时的错误信息 #228

多么奇怪。在 Windows 和 Arduino 应用程序 > 文件 > 首选项中打开 grblUpload.ino 文件,单击“显示行号”。也为我工作。我无法将文件上传到我的 Arduino Uno。感谢大家继续排除故障。

使用 Arduino IDE 1.8.3 编译 grbl 1.1e 时的错误信息 #228

这些不是错误,它们是警告。

由于 Arduino 预处理#include <Arduino.h>在未找到提到的文件时会自动将 .ino 添加到 .ino 文件,因此另一种解决方法是将此子句添加到 grblUpload.ino:

#if 0
#include <Arduino.h>
#endif

另一种解决方法是使用https://github.com/gnea/grbl/wiki/Compiling-Grbl#build-as-a-normal-arduino-ide-project方法。它还允许您维护和使用多个不同的配置,例如 grbl、grbl-Mega 和 grbl-Mega-5X,以及不同的 config.h、defaults.h 和 cpu_map.h

喜欢 (0)