【问题标题】:Arduino vscode: identifier "sprintf" is undefinedArduino vscode:标识符“sprintf”未定义
【发布时间】:2020-08-13 01:53:47
【问题描述】:

我刚刚为 VSCode 安装了 vscode-arduino 插件,因为我真的很想停止在那个可怕的 IDE 中工作。在设置时,我遇到了几个问题,其中一个要求我将安装的 arduino IDE 降级到版本 1.8.6,另一个要求我添加定义:USBCON 到我的 c_cpp_properties.json。以下是我的.vscode 文件夹中的所有文件:

arduino.json

{
    "board": "arduino:avr:nano",
    "configuration": "cpu=atmega328old",
    "sketch": "EEPROM_Programmer.ino"
}

c_cpp_properties.json

{
  "configurations": [
    {
      "name": "Win32",
      "includePath": [
        "C:\\Program Files (x86)\\Arduino\\tools\\**",
        "C:\\Program Files (x86)\\Arduino\\hardware\\arduino\\avr\\**",
        "C:\\Program Files (x86)\\Arduino\\hardware\\tools\\avr\\**"
      ],
      "forcedInclude": [
        "C:\\Program Files (x86)\\Arduino\\hardware\\arduino\\avr\\cores\\arduino\\Arduino.h"
      ],
      "intelliSenseMode": "msvc-x64",
      "compilerPath": "C:\\Program Files (x86)\\Microsoft Visual Studio\\2019\\Community\\VC\\Tools\\MSVC\\14.24.28314\\bin\\Hostx64\\x64\\cl.exe",
      "cStandard": "c11",
      "cppStandard": "c++17",
      "defines": ["USBCON"]
    }
  ],
  "version": 4
}

如果有人有任何建议,他们将不胜感激!

【问题讨论】:

  • 回答标题 - 如果您想使用 sprintf,请从 AVR 标准库中包含 stdio.h
  • 我已经尝试过了,但这并不能解决问题。这实际上是我相信的 vscode-arduino 扩展的一个问题,因为当我编译它时,它不会抛出任何错误。这也开始发生在 SPI 和直接端口访问变量(如 PINB、PORTB 等)中。

标签: visual-studio-code arduino vscode-settings arduino-ide


【解决方案1】:

我在使用 VS Code IntelliSense for Arduino 时遇到了一些类似的问题。

不知何故,IntelliSense 不适用于 Visual Studio 编译器。我已经更改了c_cpp_properties.json 文件中的以下设置,以使用 Arduino 提供的编译器。

旧:

"intelliSenseMode": "msvc-x64",
"compilerPath": "C:\\Program Files (x86)\\Microsoft Visual Studio\\2019\\Community\\VC\\Tools\\MSVC\\14.24.28314\\bin\\Hostx64\\x64\\cl.exe"

新:

"intelliSenseMode": "clang-x64",
"compilerPath": "C:\\Program Files (x86)\\Arduino\\hardware\\tools\\avr\\bin\\avr-gcc.exe"

也许您必须调整 Arduino 文件夹的路径。

此更改解决了我的未定义标识符问题。

【讨论】:

    猜你喜欢
    • 2021-10-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多