Sony Spresense SDK -VS 代码扩展 - 无效参数#include <arch/types.h> on fresh Build of HelloWorld

Sony Spresense SDK -VS code Extension - Invalid argument # include <arch/types.h> on fresh Build of HelloWorld

虽然生活往往令人沮丧,但我在构成 VS-Code 的庞大集团中发现了另一个有趣的错误,它是 'useful' 扩展列表...

背景故事:

首先 - 我购买了新的 Sony - Spresense 主板和扩展板用于开发和测试目的。一切都完好无损,产品和包装质量上乘。

第一步:

对于购买的每个微控制器,我总是在编程时测试设备提供的每个方面。我使用著名的 Arduino ide 在 Spresense 主板上抛出一些基本示例。它们都正确闪烁,工作正常,我很高兴看到设备正常工作!

问题:

此时我已经开始使用 arduino ide...我决定ided 下载 vscode 扩展,在 vscode 之后通过 Sony Spresense 网站设置 guide provided。

全停错误:

很高兴看到我的第一个 hello world printf statment 巡航通过串行终端我开始项目 spresense 应用程序构建。

Makefile 通过检查目录和执行所需职责的步骤继续进行。

make[3]: 进入目录 '/c/msys64/home/Anon/spresense/sdk/apps/builtin' 在 C:/msys64/home/Anon/spresense/nuttx/include/sys/types.h:47:0 包含的文件中, 来自 C:/msys64/home/Anon/spresense/nuttx/include/nuttx/lib/builtin.h:51, 来自./builtin_list.c:44: C:/msys64/home/Anon/spresense/nuttx/include/stdint.h:49:12: 致命错误:C:/msys64/home/Anon/spresense/nuttx/include/arch/types.h: 无效参数

包括

编译终止。 错误:arm-none-eabi-gcc 失败:1 命令:arm-none-eabi-gcc -M -fno-builtin -mabi=aapcs -ffunction-sections -fdata-sections -Wall -Wstrict-prototypes -Wshadow -Wundef -g -Os - fno-strict-aliasing -fno-strength-reduce -fomit-frame-pointer -mcpu=cortex-m4 -mthumb -mfpu=fpv4-sp-d16 -mfloat-abi=hard -I. -isystem /c/msys64/home/Anon/spresense/nuttx/include -isystem /c/msys64/home/Anon/spresense/nuttx/../sdk/include -D__KERNEL__ -pipe -gdwarf-3 -I /c/msys64/home/Anon/spresense/sdk/apps/include ./builtin_list.c make[3]: *** [/c/msys64/home/Anon/spresense/sdk/apps/Application.mk:209: .depend] 错误 1 make[3]: 离开目录'/c/msys64/home/Anon/spresense/sdk/apps/builtin'

Make 继续抛出 10 多个相同类型的错误,所有参数均无效..

我觉得这应该行得通...我的意思是在这个产品线背后的所有粉丝博览会上,人们会认为基本设置 guide 和 IDE 应该开箱即用...

我想我正在弄清楚为什么这条产品线在 public 领域惨遭失败...

最基本的代码

#include <sdk/config.h>
#include <stdio.h>

int myAppS_main(int argc, char *argv[])
{
  printf("Hello Spresense!!!");
  return 0;
}

我花了几天时间试图搞清楚这个问题,但据我所知,索尼通过 vscode.

提供了一个损坏的扩展程序

我不得不承认我有点难过....

在 win10 下开发,可以尝试使用 linux,因为这似乎是 Win10 使用 MSYS2 终端的问题。

上周我用我的 spresense 板做了同样的步骤。 但是我没有遇到这个问题...

我对此很感兴趣。 所以,如果你提供更多信息,我会调查的!

  1. 文件C:/msys64/home/Anon/spresense/nuttx/include/arch/types.h是否存在?你能打开文件吗?
  2. 你在SDK Config中选择了什么? (没有默认?)如果你可以提供一个“sdk.config”,你能在这个页面分享它吗?
  3. 您是否将 spresense sdk (/c/msys64/home/Anon/spresense) 用于其他用途?(构建检查或配置等...)
  4. 你的 MSYS2 版本是多少?

而且我认为,您可能可以使用下一个命令恢复您的环境,您可以试试吗?

$ cd /c/msys64/home/Anon/spresense/sdk
$ make distclean

嗯,

感谢@cmm 对构建完整性的确认。

我能够在另一台 windows 10 计算机上安装开发堆栈,但没有最新的功能更新。只是为了确保这不会造成问题。

在我对知识的巨大追求中,我觉得经过长时间的研究,我可能找到了解决问题的方法。

我可以验证的是:

  • VS Code 已完全更新

  • MSYS2 已正确安装并从终端完全更新

  • VS Code 扩展版本 1.20 已更新至当前版本

  • 已在 VS Code 中将终端设置到 MSYS 目录并接受更改

  • SDK 配置是默认的,没有额外的配置选项

  • 项目文件夹位置和 SDK 位置已在工作区配置中正确设置

  • 每个步骤都按照描述的 SDK 入门指南完成

我认为发生了什么

  • ......互联网安全程序.......

在安装 MSYS2 和 Vs Code ext 期间,我没有密切关注安装过程。当我开始工作时,我只是让它 运行。在此过程中,我不知不觉地进行了多次尝试,但都被我的防火墙和互联网安全协议阻止了。我真的不敢相信这整个问题实际上有多么愚蠢...

  • 某些子模块似乎是从不同的服务器位置获取的。我检查了我的防火墙日志,出于某种原因,这些连接尝试被标记并被阻止。

时刻关注你的安装!!

在将标记的连接尝试和完整的开发堆栈列入白名单后 refresh/re 安装后,我能够克服困扰我的问题...

对于遇到此问题的任何人,我认为问题在于安装过程并确保在 MSYS 安装期间正确连接到外部服务器。

我不得不说...这个把我吓了一跳....:P