开源改变世界

使用最新代码编译错误。 #49

推推 grbl 3年前 (2023-02-08) 329次浏览
关闭
andrewmarles 打开了这个问题 2022 年 10 月 3 日 · 43条评论
关闭

使用最新代码编译错误。#49

andrewmarles 打开了这个问题 2022 年 10 月 3 日 · 43条评论

评论

使用最新代码编译错误。 #49

尝试发布一些更新的版本时,我遇到了一些编译错误,这些错误似乎主要与 RTC 功能有关。即使对核心 iMXRT1062 存储库进行全新检查,我也会遇到这些错误。

src\driver.c:2215:16: error: invalid initializer
src\driver.c:2217:13: error: incompatible type for argument 1 of 'rtc_set'
     rtc_set(t);
             ^


src\driver.c: In function 'get_rtc_time':
src\driver.c:2225:20: error: invalid initializer
         time_t t = rtc_get();


src\grbl\nuts_bolts.c: In function 'get_datetime':
src\grbl\nuts_bolts.c:287:22: error: storage size of 'dt' isn't known
     static struct tm dt;
                      ^

src\grbl\nuts_bolts.c:293:27: error: invalid application of 'sizeof' to incomplete type 'struct tm'
     memset(&dt, 0, sizeof(struct tm));
                           ^
使用最新代码编译错误。 #49
贡献者

哪个 Teensyduino 版本?它使用 1.54 (Arduino IDE) 为我编译和工作。

使用最新代码编译错误。 #49
贡献者作者

PlatformIO.ini 从第 47 行拉低 1.53:

platform = ${common_teensy.platform}@4.12

我尝试使用最新的 4.17 和 teensyduino 1.57,但这导致了#15的错误

将尝试使用 1.54。

使用最新代码编译错误。 #49
贡献者作者

从 repo 修改 platformIO.ini 以引入https://github.com/WMXZ-EU/uSDFS我可以用 1.54 编译。我不完全清楚这是否是#15的预期解决方案?

使用最新代码编译错误。 #49
贡献者

我错了,我已经更新到 1.56…
1.57 重新引入了‘msSCSICapacity_t’ has not been declared错误?

我不完全清楚这是否是#15的预期解决方案?

确实,随机延迟错误很严重,因为它并未出现在所有 grblHAL 配置中。

使用最新代码编译错误。 #49
贡献者作者

好吧,至少我可以声称我的理智有一些小的控制。我也会尝试使用 1.56。

使用最新代码编译错误。 #49
贡献者作者

使用 1.56 及其编译的补丁。我会考虑制作一个 PR 来更新 platformio.ini。

使用最新代码编译错误。 #49

有人可以简要说明在 platfomio.ini 中要进行哪些更改以及修补什么/如何修补?

使用最新代码编译错误。 #49
德雷斯科 评论了 2022 年 10 月 21 日  

有人可以简要说明在 platfomio.ini 中要进行哪些更改以及修补什么/如何修补?

将平台行更改为platform = ${common_teensy.platform}@4.15– 这应该会引入 1.56 teensyduino 库。

在 lib_deps 下,删除两个 wwatson 源,并添加https://github.com/WMXZ-EU/uSDFS. 这仍然需要修补,所以在第一次构建尝试后,打开.pio/libdeps/teensy41/uSDFS文件夹并从包含的 uSDFS.zip 中复制更新的文件。

@terjeio @andrewmarles我想上游库可以在安装时使用 extra_scripts 指令进行修补,但也许更容易指向一个预修补的叉子?

使用最新代码编译错误。 #49

谢谢你!

使用最新代码编译错误。 #49
贡献者

也许更容易指向一个预先打补丁的叉子?

是的,我是这么认为的,或者 IMO 宁愿在驱动程序中包含源代码。遗憾的是,Arduino IDE 非常简单,无法修复 uSDFS……

顺便说一句,使用新的网站构建器构建是另一种选择吗?当 Web 构建器被认为稳定时,也许会放弃 Arduino IDE 支持?

使用最新代码编译错误。 #49

你好@dresco,我曾尝试执行您的建议,但我失败了。特别是我错过了重点

删除两个 wwatson 源

我必须删除哪些文件?

其他修改应该已经正确完成,但我有以下编译错误:

Compiling .pio\build\teensy41\libd7d\uSDFS\utility\sd_spi.c.o
In file included from .pio\libdeps\teensy41\MSC-non-blocking\src\msc.h:31:0,
                 from .pio\libdeps\teensy41\MSC-non-blocking\src\MassStorageDriver.cpp:29:
C:\Users\stefa\.platformio\packages\framework-arduinoteensy\libraries\USBHost_t36/USBHost_t36.h:2056:2: error: 'msSCSICapacity_t' does not name a type
  msSCSICapacity_t msCapacity;
  ^
C:\Users\stefa\.platformio\packages\framework-arduinoteensy\libraries\USBHost_t36/USBHost_t36.h:2057:2: error: 'msInquiryResponse_t' does not name a type
  msInquiryResponse_t msInquiry;
  ^
C:\Users\stefa\.platformio\packages\framework-arduinoteensy\libraries\USBHost_t36/USBHost_t36.h:2058:2: error: 'msRequestSenseResponse_t' does not name a type
  msRequestSenseResponse_t msSense;
  ^
C:\Users\stefa\.platformio\packages\framework-arduinoteensy\libraries\USBHost_t36/USBHost_t36.h:2059:2: error: 'msDriveInfo_t' does not name a type
  msDriveInfo_t msDriveInfo;
  ^
C:\Users\stefa\.platformio\packages\framework-arduinoteensy\libraries\USBHost_t36/USBHost_t36.h:2078:31: error: 'msSCSICapacity_t' has not been declared
  uint8_t msReadDeviceCapacity(msSCSICapacity_t * const Capacity);
                               ^
compilation terminated due to -fmax-errors=5.
In file included from .pio\libdeps\teensy41\MSC-non-blocking\src\msc.h:31:0,
                 from .pio\libdeps\teensy41\MSC-non-blocking\src\MassStorageHost.cpp:31:
C:\Users\stefa\.platformio\packages\framework-arduinoteensy\libraries\USBHost_t36/USBHost_t36.h:2056:2: error: 'msSCSICapacity_t' does not name a type
  msSCSICapacity_t msCapacity;
  ^
C:\Users\stefa\.platformio\packages\framework-arduinoteensy\libraries\USBHost_t36/USBHost_t36.h:2057:2: error: 'msInquiryResponse_t' does not name a type
  msInquiryResponse_t msInquiry;
  ^
C:\Users\stefa\.platformio\packages\framework-arduinoteensy\libraries\USBHost_t36/USBHost_t36.h:2058:2: error: 'msRequestSenseResponse_t' does not name a type
  msRequestSenseResponse_t msSense;
  ^
C:\Users\stefa\.platformio\packages\framework-arduinoteensy\libraries\USBHost_t36/USBHost_t36.h:2059:2: error: 'msDriveInfo_t' does not name a type
  msDriveInfo_t msDriveInfo;
  ^
C:\Users\stefa\.platformio\packages\framework-arduinoteensy\libraries\USBHost_t36/USBHost_t36.h:2078:31: error: 'msSCSICapacity_t' has not been declared
  uint8_t msReadDeviceCapacity(msSCSICapacity_t * const Capacity);
                               ^
compilation terminated due to -fmax-errors=5.
Compiling .pio\build\teensy41\liba9e\lwip\api\api_lib.c.o
*** [.pio\build\teensy41\libf4b\MSC-non-blocking\MassStorageDriver.cpp.o] Error 1
*** [.pio\build\teensy41\libf4b\MSC-non-blocking\MassStorageHost.cpp.o] Error 1

有人可以帮我构建固件吗?

亲切的问候

使用最新代码编译错误。 #49
德雷斯科 评论了 2022 年 10 月 22 日  

我必须删除哪些文件?有人可以帮我构建固件吗?

将 platformio.ini 中的这两行替换为https://github.com/WMXZ-EU/uSDFS

 

使用最新代码编译错误。 #49

@dresco它奏效了,非常感谢!

使用最新代码编译错误。 #49

大家好,非常抱歉再次打扰您,但是我昨天在帮助下编译的最新固件出现了新问题@dresco:如果我激活主轴插件,我会收到以下错误:

src\driver.c:1518:34: error: 'spindleConfig' undeclared (first use in this function)
         if(hal.spindle.config == spindleConfig)
                                  ^
src\driver.c:1518:34: note: each undeclared identifier is reported only once for each function it appears in
src\driver.c:1519:13: warning: implicit declaration of function 'spindleConfig' [-Wimplicit-function-declaration]
             spindleConfig();
             ^
*** [.pio\build\teensy41\src\driver.c.o] Error 1

对于我使用的以前的版本 (4.12),这并没有发生。有人能帮我吗?
亲切的问候,
斯特凡诺

使用最新代码编译错误。 #49
贡献者

.. 我有最新固件的新问题

@szaghi抱歉,我引入了一个新错误。

将此行更改为:

#如果SPINDLE_SYNC_ENABLE

到: 

#ifdef DRIVER_SPINDLE && SPINDLE_PWM_PIN

作为快速修复。

使用最新代码编译错误。 #49

@terjeio非常感谢您的照明帮助,非常感谢。

我今天晚些时候会测试。
亲切的问候,
斯特凡诺

使用最新代码编译错误。 #49

.. 我有最新固件的新问题

@szaghi抱歉,我引入了一个新错误。

将此行更改为:

#如果SPINDLE_SYNC_ENABLE

 

到:
#ifdef DRIVER_SPINDLE && SPINDLE_PWM_PIN

作为快速修复。

@terjeio

它似乎没有影响我的错误(这确实似乎进入了上面的函数,第 1518 行)。我仍然有编译错误

src\driver.c: In function 'settings_changed':
src\driver.c:1518:34: error: 'spindleConfig' undeclared (first use in this function)
使用最新代码编译错误。 #49
贡献者

糟糕 – 标记错误的行,改为更改 1517 …

使用最新代码编译错误。 #49

@terjeio有用!

再次感谢你

使用最新代码编译错误。 #49

谢谢大家。这也救了我。

使用最新代码编译错误。 #49

我无法使用“#define WEBUI_ENABLE 3”在 platformio 上进行编译。我也将值更改为 1 但没有运气。以下是控制台消息:

  • 在文件夹 grblHAL_Teensy4 中执行任务:platformio run

警告!monitor_flags忽略[env] Processing teensy41 部分中的未知配置选项
(开发板:teensy41;平台:teensy@4.16;框架:arduino)

可以通过-v, --verbose选项
配置启用详细模式:https
://docs.platformio.org/page/boards/teensy/teensy41.html 平台:Teensy (4.16.0) > Teensy 4.1
硬件:IMXRT1062 600MHz、512KB RAM、7.75MB 闪存
调试:当前(jlink)外部(jlink)
包:

  • 框架-arduinoteensy @ 1.156.0 (1.56)
  • 小工具 @ 1.154.210805 (1.54)
  • toolchain-gccarmnoneeabi @ 1.50401.190816 (5.4.1)
    LDF: Library Dependency Finder -> https://bit.ly/configure-pio-ldf
    LDF Modes: Finder ~ chain, Compatibility ~ soft
    找到 94 个兼容库
    扫描依赖.. .
    依赖图
    |– uSDFS @ 1.1.3+sha.478e1d5
    | |– USBHost_t36 @ 0.1
    |– lwip @ 2.0.2+sha.3127918
    以发布模式
    构建 编译 .pio/build/teensy41/src/driver.co
    编译 .pio/build/teensy41/src/eeprom/eeprom_24AAxxx.co
    编译 .pio/build/teensy41/src/eeprom/eeprom_24LC16B.co
    编译 .pio/build/teensy41/src/encoder/encoder.co
    在 src/driver.c:54:0 包含的文件中:
    .pio/libdeps/teensy41/uSDFS/src/uSDFS.h:27:17: 错误:重新定义’struct tm’
    typedef struct tm
    ^
    在 src/grbl/hal.h:29:0 包含的文件中,
    来自 src/ uart.h:29,
    来自 src/driver.c:29:
    /Users/karoria/.platformio/packages/toolchain-gccarmnoneeabi/arm-none-eabi/include/time.h:37:8: 注意:最初定义在这里
    struct tm
    ^
    src/driver.c: 在函数 ‘set_rtc_time’ 中:
    src/driver.c:2231:23: 警告:从不兼容的指针类型 [-Wincompatible-pointer-types]
    time_t t = mktime传递 ‘mktime’ 的参数 1 (时间);
    ^
    在 /Users/karoria/.platformio/packages/toolchain-gccarmnoneeabi/arm-none-eabi/include/sys/reent.h:13:0 包含的文件中,
    来自 /Users/karoria/.platformio/packages/toolchain-gccarmnoneeabi/arm-none-eabi/include/math.h:5,
    来自 src/driver.c:25:
    /Users/karoria/.platformio/packages/toolchain- gccarmnoneeabi/arm-none-eabi/include/time.h:58:11: 注意:预期为“struct tm *”,但参数类型为“struct tm *”
    time_t _EXFUN(mktime, (struct tm *_timeptr));
    ^
    src/driver.c: 在函数 ‘get_rtc_time’ 中:
    src/driver.c:2242:25: 警告:从不兼容的指针类型初始化 [-Wincompatible-pointer-types]
    struct tm *dt = gmtime(&t);
    ^
    src/driver.c: 在函数 ‘driver_init’ 中:
    src/driver.c:2358:26: 警告:来自不兼容指针类型 [-Wincompatible-pointer-types]
    hal.rtc 的赋值。
    ^
    src/driver.c:2359:26: 警告:来自不兼容指针类型的赋值 [-Wincompatible-pointer-types]
    hal.rtc.set_datetime = set_rtc_time;
    ^
    *** [.pio/build/teensy41/src/driver.co] 错误 1
    ​​================== [失败] 耗时 6.28 秒 ====== ============

环境状态持续时间


teensy41 失败 00:00:06.278
============= 1 失败,0 成功 00:00:06.278 =============

  • 终端进程“platformio ‘run’”以退出代码终止:1。
  • 终端将被任务重用,按任意键关闭它。

等待帮助。

使用最新代码编译错误。 #49
贡献者

.pio/libdeps/teensy41/uSDFS/src/uSDFS.h:27:17: 错误:’struct tm’ 的重新定义

该文件中的第 8 行#define HAVETM吗?如果不是,则尚未应用所需的补丁。

使用最新代码编译错误。 #49

@terjeio感谢您的回复。是的,我错过了那个补丁,但现在我确实遵循了网络和 SD 卡插件的补丁,但现在编译错误更改为其他内容,如下所示:

  • 在文件夹 grblHAL_Teensy4 中执行任务:platformio run

警告!monitor_flags忽略[env] Processing teensy41 部分中的未知配置选项
(开发板:teensy41;平台:teensy@4.16;框架:arduino)

Verbose mode can be enabled via -v, --verbose option
CONFIGURATION: https://docs.platformio.org/page/boards/teensy/teensy41.html
PLATFORM: Teensy (4.16.0) > Teensy 4.1
HARDWARE: IMXRT1062 600MHz, 512KB RAM, 7.75MB Flash
DEBUG: Current (jlink) External (jlink)
PACKAGES:

  • framework-arduinoteensy @ 1.156.0 (1.56)
  • tool-teensy @ 1.154.210805 (1.54)
  • toolchain-gccarmnoneeabi @ 1.50401.190816 (5.4.1)
    LDF: Library Dependency Finder -> https://bit.ly/configure-pio-ldf
    LDF Modes: Finder ~ chain, Compatibility ~ soft
    找到 94 个兼容库
    扫描依赖.. .
    依赖图
    |– uSDFS @ 1.1.3+sha.478e1d5
    | |– USBHost_t36 @ 0.1
    |– lwip @ 2.0.2+sha.3127918
    以发布模式
    构建 编译 .pio/build/teensy41/src/driver.co
    编译 .pio/build/teensy41/src/eeprom/eeprom_24AAxxx.co
    编译.pio/build/teensy41/src/eeprom/eeprom_24LC16B.co
    编译.pio/build/teensy41/src/encoder/
    encoder.co 编译.pio/build/teensy41/src/enet.co
    编译 .pio/build/teensy41/src/fans/fans.co
    src/enet.c:136:38: 警告:’struct mdns_service’ 在参数列表中声明
    static void mdns_device_info (struct mdns_service *service, void *txt_userdata)
    ^
    src /enet.c:136:38: warning: 它的范围只是这个定义或声明,这可能不是你想要
    的 src/enet.c: In function ‘mdns_device_info’:
    src/enet.c:141:5: warning :函数’mdns_resp_add_service_txtitem’的隐式声明[-Wimplicit-function-declaration]
    mdns_resp_add_service_txtitem(service, “model=grblHAL”, 13);
    ^
    src/enet.c: 在顶层:
    src/enet.c:146:39: 警告:’struct mdns_service’ 在参数列表中声明
    static void mdns_service_info (struct mdns_service *service, void *txt_userdata)
    ^
    src/enet.c: 在函数 ‘netif_status_callback’ 中:
    src/enet.c:193:9: 警告:函数 ‘mdns_resp_init’ 的隐式声明 [-Wimplicit-function -声明]
    mdns_resp_init();
    ^
    src/enet.c:195:29:警告:函数’mdns_resp_add_netif’的隐式声明[-Wimplicit-function-declaration]
    if((services.mdns = mdns_resp_add_netif(netif_default, network.hostname, MDNS_TTL) == ERR_OK)) {
    ^
喜欢 (0)