0

VSC 拡張Code RunnerでArduinoJsonライブラリを使用してプログラムを実行しようとしていますが、コンパイルできません。

VSC にはマークアップ エラーや警告はありませんが、このスニペットを実行しようとすると、次のようになります。

#include "../External_Libraries/ArduinoJson/ArduinoJson.h"
#include <iostream>
int main(){
    std::cout << "Done.\n";
    return 0;}

以下のエラー出力が表示されます。

In file included from ../External_Libraries/ArduinoJson/src/ArduinoJson.hpp:17,\
                 from ../External_Libraries/ArduinoJson/src/ArduinoJson.h:9,\
                 from ../External_Libraries/ArduinoJson/ArduinoJson.h:5,\
                 from localtest.cpp:17:\ ../External_Libraries/ArduinoJson/src/ArduinoJson/Array/ArrayRef.hpp:7:10: fatal error:\ ArduinoJson/Array/ArrayFunctions.hpp: No such file or directory\
#include <ArduinoJson/Array/ArrayFunctions.hpp>\
         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\ compilation terminated.

ArduinoJson ライブラリ内には、二重引用符を使用する include コマンドと、山かっこを使用するコマンドがあります。

#include "src/ArduinoJson.h"
//...   
#include <ArduinoJson/Array/ArrayFunctions.hpp>

山括弧を含む include ステートメントだけが問題のようです。これをカバーするために、settings.json と c_cpp_properties.json のインクルード パスを更新しようとしましたが、うまくいきませんでした:

settings.json で:

"C_Cpp.default.includePath": [
    "C:\\...\\project",
    "C:\\...\\project\\External_Libraries\\ArduinoJson\\src",
    "C:\\...\\project\\External_Libraries\\ArduinoJson\\src\\ArduinoJson\\Array"],
"C_Cpp.default.compilerPath": "C:\\MinGW\\bin\\gcc.exe"

c_cpp_properties.json で:

"name": "Win32",
"includePath":[
    "${default}",
    "C:/.../project",
    "C:/.../project/External_Libraries/ArduinoJson/src/ArduinoJson/Array"],
"defines":[
    "_DEBUG",
    "UNICODE",
    "_UNICODE"],
"cStandard": "gnu17",
"cppStandard": "gnu++14",
"intelliSenseMode": "windows-gcc-x86",
"compilerPath": "C:/MinGW/bin/gcc.exe",
"compilerArgs": ["-I C:\\...\\project\\External_Libraries"]

私が間違っているかもしれないことを誰かが知っていますか?

私のフォルダ構造は

project/
--src/
----localtest.cpp
--External_Libraries/
----ArduinoJson/

4

2 に答える 2

1

includePath最後に「C:/.../project/External_Libraries/ArduinoJson/src」に変更する必要があると思います。これは、実際のインクルードが既に相対パスとして持っているためです#include <ArduinoJson/Array/ArrayFunctions.hpp>

      "name": "Win32",
  "includePath":[
      "${default}",
      "C:/Users/pohl/Documents/Git/IDEAL_AgentsOnHardware",
      "C:/.../project/External_Libraries/ArduinoJson/src"],
  "defines":[
      "_DEBUG",
      "UNICODE",
      "_UNICODE"],
  "cStandard": "gnu17",
  "cppStandard": "gnu++14",
  "intelliSenseMode": "windows-gcc-x86",
  "compilerPath": "C:/MinGW/bin/gcc.exe",
  "compilerArgs": ["-I C:\\...\\project\\External_Libraries"]
于 2021-06-29T13:57:21.013 に答える