开源改变世界

使用 platformio 在 VSCode 中编译固件时出现问题 #554

推推 grbl 2年前 (2023-01-30) 335次浏览
关闭
lienbacher 打开了这个问题 2020 年 8 月 18 日 · 21条评论
关闭

使用 platformio 在 VSCode 中编译固件时出现问题#554

lienbacher 打开了这个问题 2020 年 8 月 18 日 · 21条评论

注释

使用 platformio 在 VSCode 中编译固件时出现问题 #554
贡献者
连巴赫 评论了 2020 年 8 月 18 日  

你好!
我更新 grbl_esp32 已经有一段时间了,所以我刚刚做了一个新的 git 克隆,将它作为一个文件夹添加到一个新的工作区中,然后点击底部工具栏中的构建。

我收到了一堆这样的错误:

Compiling .pio/build/release/src/print.cpp.o
Assembler messages:
Fatal error: can't create .pio/build/release/src/grbl_sd.cpp.o: No such file or directory
*** [.pio/build/release/src/grbl_sd.cpp.o] Error 1

如果我再次点击编译,它将在不同的地方失败。
最终,如果它最终设法完成所有事情,我会得到这个:

Indexing .pio/build/release/libFrameworkArduino.a
Linking .pio/build/release/firmware.elf
.pio/build/release/libFrameworkArduino.a(main.cpp.o):(.literal._Z8loopTaskPv+0x4): undefined reference to `setup()'
.pio/build/release/libFrameworkArduino.a(main.cpp.o):(.literal._Z8loopTaskPv+0x8): undefined reference to `loop()'
.pio/build/release/libFrameworkArduino.a(main.cpp.o): In function `loopTask(void*)':
/Users/wolfgang/.platformio/packages/framework-arduinoespressif32/cores/esp32/main.cpp:14: undefined reference to `setup()'
/Users/wolfgang/.platformio/packages/framework-arduinoespressif32/cores/esp32/main.cpp:17: undefined reference to `loop()'
collect2: error: ld returned 1 exit status
*** [.pio/build/release/firmware.elf] Error 1

谷歌搜索没有产生任何结果,我一无所知。现在使用 platformio 已经有一段时间了,从来没有遇到过那种问题。

我的编译方法是错误的吗?

编辑:忘记添加:我使用的是 macOS 10.15.6

使用 platformio 在 VSCode 中编译固件时出现问题 #554 连巴赫 补充道 把招工广告 需要额外注意标签 2020 年 8 月 18 日
使用 platformio 在 VSCode 中编译固件时出现问题 #554

我今天也做了同样的事情,它对我有用!
您必须将代码作为 PIO 项目打开(文件 platformio.ini)。构建时,可能需要一些时间,因为必须先下载并安装 ESP32 环境。

使用 platformio 在 VSCode 中编译固件时出现问题 #554
贡献者作者

该文件会被自动检测到,打开项目或多或少与将项目文件夹添加到工作区相同。

使用 platformio 在 VSCode 中编译固件时出现问题 #554

尝试使用 Devt 分支。

使用 platformio 在 VSCode 中编译固件时出现问题 #554
贡献者作者

相同的。

我现在有一个线索,只是在底部有一个弹出窗口我正在使用 mac os 附带的本机 python,我应该选择一个不同的。我可能搞砸了我的 python 设置,因为我从来没有真正积极地使用过它。Mac OS 上的 Python 完全是一团糟,我想是时候清理它了:(

使用 platformio 在 VSCode 中编译固件时出现问题 #554
贡献者作者

除了 python 线索之外,真正奇怪的是没有错误是一致的。每次我编译错误都略有不同。唯一常见的是它总是失败(我认为它甚至成功了一两次)oO

使用 platformio 在 VSCode 中编译固件时出现问题 #554

你需要 Python 3.something。Python 2 可以工作,也可以不工作——你会遇到很多虚假的重新编译和 Python 2 的其他问题。

使用 platformio 在 VSCode 中编译固件时出现问题 #554
贡献者作者

哦,我安装了python3,我想至少两次。在 mac os 上安装 python 时,我可能做错了一些尝试来修复以前做错的尝试,其中一个是最近,现在它正在咬我?️. 解释了为什么我自己的项目工作,他们不使用 python :D

使用 platformio 在 VSCode 中编译固件时出现问题 #554

我使用 Python 3.8.3。32 位并作为单个应用程序安装,而不是与依赖它的程序一起安装。我运行W10

使用 platformio 在 VSCode 中编译固件时出现问题 #554
贡献者作者

不幸的是,它在 macOS 上并不是那么简单,主要是因为它已经随 2.8 一起提供并且无法删除。有点概述了情况。

使用 platformio 在 VSCode 中编译固件时出现问题 #554
贡献者作者

仍在忙于修复 python,但我现在已经步入正轨。

我注意到一件事,在我的工作区中,我有一个文件Grbl_Esp32.ino.cpp不断弹出和消失,它只存在很短的片刻,然后就消失了。我不知道这是否相关,但如果某些东西一直在修改工作目录,这可能是另一个线索……整个问题非常令人困惑!

使用 platformio 在 VSCode 中编译固件时出现问题 #554
贡献者作者

不是每次,但几乎每次我点击构建时,我都会收到不同的错误消息

Building in release mode
Compiling .pio/build/release/src/Grbl_Esp32.ino.cpp.o
xtensa-esp32-elf-g++: error: Grbl_Esp32/Grbl_Esp32.ino.cpp: No such file or directory
xtensa-esp32-elf-g++: fatal error: no input files
compilation terminated.
Compiling .pio/build/release/src/src/CoolantControl.cpp.o
Compiling .pio/build/release/src/src/CustomCode.cpp.o
Compiling .pio/build/release/src/src/Eeprom.cpp.o
Compiling .pio/build/release/src/src/GCode.cpp.o
Compiling .pio/build/release/src/src/Grbl.cpp.o
Compiling .pio/build/release/src/src/I2SOut.cpp.o
*** [.pio/build/release/src/Grbl_Esp32.ino.cpp.o] Error 1
Compiling .pio/build/release/src/src/Jog.cpp.o
================================================================================================================================================== [FAILED] Took 3.42 seconds ==================================================================================================================================================

Environment    Status    Duration
-------------  --------  ------------
release        FAILED    00:00:03.424
debug          IGNORED
============================================================================================================================================= 1 failed, 0 succeeded in 00:00:03.424 =============================================================================================================================================
The terminal process "platformio 'run'" terminated with exit code: 1.
使用 platformio 在 VSCode 中编译固件时出现问题 #554
合作者

Grbl_Esp32.ino.cpp基本上是从 ino 文件生成的文件。然后将其编译为目标文件并删除。

不管怎样,我可能会从一个空的 ino 文件开始,它有一个空的设置和循环方法,没有包含,然后尝试先编译它。

使用 platformio 在 VSCode 中编译固件时出现问题 #554
贡献者作者
连巴赫 评论了 2020 年 8 月 18 日  

@atlaste在编译时编译它是有意义的。然而,它总是时断时续。不仅是我编译。
我有几个大大小小的 esp32 项目,我定期工作,都可以正常编译。我成功地使用了 platformio,这种行为对我来说是全新的。
编辑:因为确实,如果一个裸项目不起作用,那将是一个开始的地方,我刚刚创建了一个空白的 platformio 项目,它按预期编译得很好。

使用 platformio 在 VSCode 中编译固件时出现问题 #554

要尝试的一件事是关闭您可以找到的每个 VScode 扩展 – 或者至少为此项目禁用它们。一些扩展似乎定期扫描树寻找有趣的东西来索引或语法检查或其他。这可能会干扰编译,因为扩展程序打开了一个文件,并且在此期间编译过程无法访问它。当我关闭扩展时,它稳定了我的编译。然后你可以一次打开一个重要的,看看它是否又开始坏了。

不幸的是,这可能很耗时,因为一些扩展似乎是元包,引入了一整套其他扩展。

当您没有明确尝试编译时 .ino.cpp 文件不断出现这一事实表明,某些扩展会在您没有输入的情况下定期触发编译。

使用 platformio 在 VSCode 中编译固件时出现问题 #554
贡献者作者

好的输入@MitchBradley!不幸的是,即使禁用了除 C/C++ 和 PlatformIO 之外的所有扩展,行为也是相同的。
唯一持续活跃的是 platformio 每 2-3 秒重建一次 intellisense …

使用 platformio 在 VSCode 中编译固件时出现问题 #554

嗨,我遇到了类似的问题,每 20 次尝试就会构建一次。我是新手,所以不是专家。但是……有两件事 [1] 你是否为 vs 代码安装了 Arduino 插件?[2] Grbl_Esp32.ino.cpp 每隔几秒就会按照您的描述创建和删除……我禁用了自动重建智能……在此之后它的构建和部署始终如一

使用 platformio 在 VSCode 中编译固件时出现问题 #554
贡献者作者

@frankylynch就是这样!在 VSCode 中禁用“Auto Rebuild Autocomplete Index”设置似乎已经解决了这个问题!以防万一有人遇到它:单击左下角的设置按钮,选择“设置”,在顶部栏中键入自动重建,它应该是唯一剩下的设置。取消选中完成。那是一个艰难的过程,我很惊讶很少有人遇到这个……