If you got this problem, Relax, u r probablu 1000th one here
I have added screenshots, these are not links to some terrifying third party documentations (;
Solution
1.installation of c++ :
check you have the c++ installed, (it dosent come pre-installed! You have to do it)
If not install it. If you have installed it, navigate to it, and get the path
click on the path at top in file explorer, and Ctrl+C to copy it here is how u get the path
2.path environment variable setup
steps:
i.left click This pc(in file explorer)here
ii. manage this menu will open
iii. scroll down in the about section, find «Advanced System Settings» and follow along this
V. «edit environment variable» dialogue box will open, click new, then paste the link to the gcc compiler that you installed firstly.
Now, this path is set as environment variable, try running command : gcc —version in command panel, if still there is error, try uploading different paths of gcc.exe to the environment variable «Path». Also, re-starting pc is recommended if path variable change doesn’t appear.
Now we start(or restart if it was open) the Vs-code(just a little to go)
i. Shift+Ctrl+p then : follow this
ii.then this
if the dropdown dosnt show any option, try re-starting vs-code, or pc, re-setting the environment variable step, or re-installing c++ and starting over(in worst case)
iii.scroll down the same page, and paste the path to include folders from c++ to text box corrosponding to «Include path» . you have to first get this path, search for folder with name «include», copy and add its path.(many times, ide is capable to automate this step;))
Now try running the code, it must be good to go, but iff it still throws error, try repeating process of adding environment variable, re-staqrting vscode, or even then, re-installing c++.
Although the question mentions Arduino, the following suggestions apply basically any time VSCode tells you to «update your includePath».
What is includePath?
The includePath
is an attribute in c_cpp_settings.json
, which is in the .vscode
folder of the main folder you have opened in VSCode using File → Open Folder.
You can edit c_cpp_settings.json
directly, but it is usually easier to use the «C/C++ Configurations GUI». To do that, open the Command Palette (Ctrl+Shift+P) and run «C/C++: Edit Configurations (UI)». Then look for the «Include path» setting.
The includePath
tells VSCode (specifically the IntelliSense component of the C/C++ extension) where to look when resolving #include "filename"
directives. That allows VSCode to see definitions of symbols defined in those files.
So should I fiddle with includePath when VSCode tells me to?
Not at first! Before changing the include path, if you haven’t already, first set the «Compiler path» to point at your C/C++ compiler, and set «IntelliSense mode» to match the compiler as closely as possible.
You may also need to adjust the Compiler arguments, particularly if the compiler is capable of generating code for multiple targets, for example, both 32-bit and 64-bit code. (If you don’t know what that means, skip it at first.)
Next, in Command Palette, run «C/C++: Log Diagnostics». The output will show you which compiler VSCode found and what it detected as its built-in include path and preprocessor defines.
Then, run these commands in a shell:
$ touch empty.c
$ gcc -v -E -dD empty.c
Here, I have assumed you are using gcc
as your compiler. If not, substitute the actual compiler command name. If your compiler is not a variant of GCC (for example you are using the Microsoft cl.exe
compiler), you’ll need to look at its documentation or Google to find switches that print the predefined macros and include paths (e.g., see here for cl.exe
).
Compare the output of the above command to what VSCode shows in its C/C++ diagnostics output. Hopefully they are very similar. If not, try adjusting the Compiler path, IntelliSense mode, or Compiler arguments. Once you’ve gotten them as close as possible by adjusting just those three settings, go on to the next step.
Now adjust includePath if necessary
If there are still significant differences between the compiler built-in configuration and what VSCode detects, fix that by (in the C/C++ settings UI) modifying the Include path, Defines, and C/C++ standard fields. Re-run the C/C++ Log Diagnostics command to see the effects.
It is probably not necessary to add all of the pre-defined preprocessor symbols. This really only matters if there are #ifdef
directives that depend on them, and which are causing VSCode to see the wrong code as active. I suggest only adding predefined symbols if, while browsing your code, you see a specific case that VSCode gets wrong.
Finally, if your project has header files in places that the compiler does not search by default, that is, you normally have to pass -I
switches on the compiler command line, add those as well to the Include path. The same goes for any -D
arguments, which must be added to the Defines.
@michelleangela
Log diagnostics without error (file not open):
——— Diagnostics — 10.12.2019, 21:23:48
Version: 0.26.2
Current Configuration:
{
«name»: «Win32»,
«includePath»: [
«c:/OneDrive/Projekte/PlatformIO/Projects/Display XPT2046/include»,
«c:/OneDrive/Projekte/PlatformIO/Projects/Display XPT2046/src»,
«C:/Users/wapjoe/.platformio/packages/framework-arduino-avr/libraries/SPI/src»,
«C:/Users/wapjoe/.platformio/packages/framework-arduino-avr/cores/arduino»,
«C:/Users/wapjoe/.platformio/packages/framework-arduino-avr/variants/eightanaloginputs»,
«C:/Users/wapjoe/.platformio/lib/Adafruit FRAM I2C_ID658»,
«C:/Users/wapjoe/.platformio/lib/DHTlib_ID1336»,
«C:/Users/wapjoe/.platformio/lib/RunningMedian_ID1361»,
«C:/Users/wapjoe/.platformio/lib/SFFS_ID2037»,
«C:/Users/wapjoe/.platformio/lib/Ticker_ID1586»,
«C:/Users/wapjoe/.platformio/lib/Time_ID44»,
«C:/Users/wapjoe/.platformio/packages/framework-arduino-avr/libraries/EEPROM/src»,
«C:/Users/wapjoe/.platformio/packages/framework-arduino-avr/libraries/HID/src»,
«C:/Users/wapjoe/.platformio/packages/framework-arduino-avr/libraries/SoftwareSerial/src»,
«C:/Users/wapjoe/.platformio/packages/framework-arduino-avr/libraries/Wire/src»,
«C:/Users/wapjoe/.platformio/packages/tool-unity»
],
«browse»: {
«limitSymbolsToIncludedHeaders»: true,
«path»: [
«c:/OneDrive/Projekte/PlatformIO/Projects/Display XPT2046/include»,
«c:/OneDrive/Projekte/PlatformIO/Projects/Display XPT2046/src»,
«C:/Users/wapjoe/.platformio/packages/framework-arduino-avr/libraries/SPI/src»,
«C:/Users/wapjoe/.platformio/packages/framework-arduino-avr/cores/arduino»,
«C:/Users/wapjoe/.platformio/packages/framework-arduino-avr/variants/eightanaloginputs»,
«C:/Users/wapjoe/.platformio/lib/Adafruit FRAM I2C_ID658»,
«C:/Users/wapjoe/.platformio/lib/DHTlib_ID1336»,
«C:/Users/wapjoe/.platformio/lib/RunningMedian_ID1361»,
«C:/Users/wapjoe/.platformio/lib/SFFS_ID2037»,
«C:/Users/wapjoe/.platformio/lib/Ticker_ID1586»,
«C:/Users/wapjoe/.platformio/lib/Time_ID44»,
«C:/Users/wapjoe/.platformio/packages/framework-arduino-avr/libraries/EEPROM/src»,
«C:/Users/wapjoe/.platformio/packages/framework-arduino-avr/libraries/HID/src»,
«C:/Users/wapjoe/.platformio/packages/framework-arduino-avr/libraries/SoftwareSerial/src»,
«C:/Users/wapjoe/.platformio/packages/framework-arduino-avr/libraries/Wire/src»,
«C:/Users/wapjoe/.platformio/packages/tool-unity»
]
},
«defines»: [
«PLATFORMIO=40100»,
«ARDUINO_AVR_NANO»,
«F_CPU=16000000L»,
«ARDUINO_ARCH_AVR»,
«ARDUINO=10808»,
«AVR_ATmega328P«
],
«intelliSenseMode»: «clang-x64»,
«cStandard»: «c11»,
«cppStandard»: «c++11»,
«compilerPath»: «C:/Users/wapjoe/.platformio/packages/toolchain-atmelavr/bin/avr-gcc.exe»,
«compilerArgs»: [
«-mmcu=atmega328p»
]
}
No active translation units.
Log diagnosis with error (file opened):
——— Diagnostics — 10.12.2019, 21:25:23
Version: 0.26.2
Current Configuration:
{
«name»: «Win32»,
«includePath»: [
«c:/OneDrive/Projekte/PlatformIO/Projects/Ergometer ProMini 1.0/include»,
«c:/OneDrive/Projekte/PlatformIO/Projects/Ergometer ProMini 1.0/src»,
«C:/Users/wapjoe/.platformio/packages/framework-arduino-avr/libraries/Wire/src»,
«C:/Users/wapjoe/.platformio/lib/Ticker_ID1586»,
«C:/Users/wapjoe/.platformio/packages/framework-arduino-avr/libraries/SoftwareSerial/src»,
«C:/Users/wapjoe/.platformio/lib/RunningMedian_ID1361»,
«C:/Users/wapjoe/.platformio/lib/DHTlib_ID1336»,
«C:/Users/wapjoe/.platformio/packages/framework-arduino-avr/cores/arduino»,
«C:/Users/wapjoe/.platformio/packages/framework-arduino-avr/variants/eightanaloginputs»,
«C:/Users/wapjoe/.platformio/lib/Adafruit FRAM I2C_ID658»,
«C:/Users/wapjoe/.platformio/lib/SFFS_ID2037»,
«C:/Users/wapjoe/.platformio/lib/Time_ID44»,
«C:/Users/wapjoe/.platformio/packages/framework-arduino-avr/libraries/EEPROM/src»,
«C:/Users/wapjoe/.platformio/packages/framework-arduino-avr/libraries/HID/src»,
«C:/Users/wapjoe/.platformio/packages/framework-arduino-avr/libraries/SPI/src»,
«C:/Users/wapjoe/.platformio/packages/tool-unity»
],
«browse»: {
«limitSymbolsToIncludedHeaders»: true,
«path»: [
«c:/OneDrive/Projekte/PlatformIO/Projects/Ergometer ProMini 1.0/include»,
«c:/OneDrive/Projekte/PlatformIO/Projects/Ergometer ProMini 1.0/src»,
«C:/Users/wapjoe/.platformio/packages/framework-arduino-avr/libraries/Wire/src»,
«C:/Users/wapjoe/.platformio/lib/Ticker_ID1586»,
«C:/Users/wapjoe/.platformio/packages/framework-arduino-avr/libraries/SoftwareSerial/src»,
«C:/Users/wapjoe/.platformio/lib/RunningMedian_ID1361»,
«C:/Users/wapjoe/.platformio/lib/DHTlib_ID1336»,
«C:/Users/wapjoe/.platformio/packages/framework-arduino-avr/cores/arduino»,
«C:/Users/wapjoe/.platformio/packages/framework-arduino-avr/variants/eightanaloginputs»,
«C:/Users/wapjoe/.platformio/lib/Adafruit FRAM I2C_ID658»,
«C:/Users/wapjoe/.platformio/lib/SFFS_ID2037»,
«C:/Users/wapjoe/.platformio/lib/Time_ID44»,
«C:/Users/wapjoe/.platformio/packages/framework-arduino-avr/libraries/EEPROM/src»,
«C:/Users/wapjoe/.platformio/packages/framework-arduino-avr/libraries/HID/src»,
«C:/Users/wapjoe/.platformio/packages/framework-arduino-avr/libraries/SPI/src»,
«C:/Users/wapjoe/.platformio/packages/tool-unity»
]
},
«defines»: [
«PLATFORMIO=40100»,
«ARDUINO_AVR_PRO»,
«F_CPU=16000000L»,
«ARDUINO_ARCH_AVR»,
«ARDUINO=10808»,
«AVR_ATmega328P«
],
«intelliSenseMode»: «clang-x64»,
«cStandard»: «c11»,
«cppStandard»: «c++11»,
«compilerPath»: «C:/Users/wapjoe/.platformio/packages/toolchain-atmelavr/bin/avr-gcc.exe»,
«compilerArgs»: [
«-mmcu=atmega328p»
]
}
Translation Unit Mappings:
[ C:OneDriveProjektePlatformIOProjectsErgometer ProMini 1.0srcmain.cpp ]:
C:ONEDRIVEPROJEKTEPLATFORMIOPROJECTSERGOMETER PROMINI 1.0SRCMAIN.CPP
Translation Unit Configurations:
[ C:OneDriveProjektePlatformIOProjectsErgometer ProMini 1.0srcmain.cpp ]:
Process ID: 19720
Memory Usage: 19 MB
Compiler Path: C:/Users/wapjoe/.platformio/packages/toolchain-atmelavr/bin/avr-gcc.exe
Includes:
C:ONEDRIVEPROJEKTEPLATFORMIOPROJECTSERGOMETER PROMINI 1.0INCLUDE
C:ONEDRIVEPROJEKTEPLATFORMIOPROJECTSERGOMETER PROMINI 1.0SRC
C:USERSWAPJOE.PLATFORMIOPACKAGESFRAMEWORK-ARDUINO-AVRLIBRARIESWIRESRC
C:USERSWAPJOE.PLATFORMIOLIBTICKER_ID1586
C:USERSWAPJOE.PLATFORMIOPACKAGESFRAMEWORK-ARDUINO-AVRLIBRARIESSOFTWARESERIALSRC
C:USERSWAPJOE.PLATFORMIOLIBRUNNINGMEDIAN_ID1361
C:USERSWAPJOE.PLATFORMIOLIBDHTLIB_ID1336
C:USERSWAPJOE.PLATFORMIOPACKAGESFRAMEWORK-ARDUINO-AVRCORESARDUINO
C:USERSWAPJOE.PLATFORMIOPACKAGESFRAMEWORK-ARDUINO-AVRVARIANTSEIGHTANALOGINPUTS
C:USERSWAPJOE.PLATFORMIOLIBADAFRUIT FRAM I2C_ID658
C:USERSWAPJOE.PLATFORMIOLIBSFFS_ID2037
C:USERSWAPJOE.PLATFORMIOLIBTIME_ID44
C:USERSWAPJOE.PLATFORMIOPACKAGESFRAMEWORK-ARDUINO-AVRLIBRARIESEEPROMSRC
C:USERSWAPJOE.PLATFORMIOPACKAGESFRAMEWORK-ARDUINO-AVRLIBRARIESHIDSRC
C:USERSWAPJOE.PLATFORMIOPACKAGESFRAMEWORK-ARDUINO-AVRLIBRARIESSPISRC
C:USERSWAPJOE.PLATFORMIOPACKAGESTOOL-UNITY
C:USERSWAPJOE.PLATFORMIOPACKAGESTOOLCHAIN-ATMELAVRLIBGCCAVR5.4.0INCLUDE
C:USERSWAPJOE.PLATFORMIOPACKAGESTOOLCHAIN-ATMELAVRLIBGCCAVR5.4.0INCLUDE-FIXED
C:USERSWAPJOE.PLATFORMIOPACKAGESTOOLCHAIN-ATMELAVRAVRINCLUDE
Defines:
PLATFORMIO=40100
ARDUINO_AVR_PRO
F_CPU=16000000L
ARDUINO_ARCH_AVR
ARDUINO=10808
AVR_ATmega328P
Standard Version: c++11
IntelliSense Mode: gcc-x64
Other Flags:
—g++
—gnu_version=50400
Total Memory Usage: 19 MB
P1XELCORE 0 / 0 / 0 Регистрация: 11.04.2013 Сообщений: 78 |
||||||||||||
1 |
||||||||||||
10.08.2020, 16:18. Показов 88201. Ответов 26 Метки нет (Все метки)
Всем привет, хотел начать писать на плюсах в vs code, установил, всё гуд, mingw поставил, настроил всё, когда начинаю компилировать прогу выдает ошибки «Обнаружены ошибки #include. Измените includePath», что он хочет от меня?? (os win10) Это файл c_cpp_properties.json
launch.json
tasks.json
0 |
Programming Эксперт 94731 / 64177 / 26122 Регистрация: 12.04.2006 Сообщений: 116,782 |
10.08.2020, 16:18 |
26 |
432 / 310 / 125 Регистрация: 18.07.2017 Сообщений: 1,410 |
|
11.08.2020, 13:06 |
2 |
Обнаружены ошибки #include. Измените includePath», что он хочет от меня? Тебя на шелле, чтоли читать учили, раз ты не видишь то, что после хеш-тега?
«includePath»: [ Проверь наличие таких директорий, либо поправь пути если они в другом месте.
0 |
0 / 0 / 0 Регистрация: 11.04.2013 Сообщений: 78 |
|
11.08.2020, 13:15 [ТС] |
3 |
Проверь наличие таких директорий, либо поправь пути если они в другом месте. я сам прописал этот путь, было бы странно если бы там не было этих директорий)
0 |
фрилансер 4797 / 4397 / 935 Регистрация: 11.10.2019 Сообщений: 11,594 |
|
11.08.2020, 13:50 |
4 |
P1XELCORE, ${workspaceFolder}/** звёзды вроде не к месту ? редактируй эти настройки через визард, тогда будет меньше ошибок
0 |
0 / 0 / 0 Регистрация: 11.04.2013 Сообщений: 78 |
|
11.08.2020, 14:12 [ТС] |
5 |
звёзды вроде не к месту ? Они по дефолту стояли в этом файле. Как я понял не просто так, т.к. про них написано в справочнике «Если путь заканчивается на /**, подсистема IntelliSense будет выполнять рекурсивный поиск файлов заголовков, начиная с этого каталога.»
редактируй эти настройки через визард, тогда будет меньше ошибок не совсем понимаю что значит редактировать через визард)
0 |
фрилансер 4797 / 4397 / 935 Регистрация: 11.10.2019 Сообщений: 11,594 |
|
11.08.2020, 14:19 |
6 |
через визард то есть, напрямую файл править не надо, надо открывать свойства проекта — зависимости, пути и т.д. Там же можно посмотреть, во что раскрываются макросы вида ${…} Добавлено через 1 минуту
«Обнаружены ошибки #include. Измените includePath», а покажи скрин, кстати
1 |
0 / 0 / 0 Регистрация: 11.04.2013 Сообщений: 78 |
|
11.08.2020, 14:58 [ТС] |
7 |
а покажи скрин, кстати
0 |
фрилансер 4797 / 4397 / 935 Регистрация: 11.10.2019 Сообщений: 11,594 |
|
11.08.2020, 15:07 |
8 |
P1XELCORE, iostream и настройки тут ни при чём
1 |
0 / 0 / 0 Регистрация: 11.04.2013 Сообщений: 78 |
|
11.08.2020, 15:08 [ТС] |
9 |
в самом коде подчеркивает проблему именно подключение библиотеки, если выбрать «Изменить параметр includePath», то кидает на вкладку изменения конфигурации IntelliSense, там по логике прописываются пути для компилятора и библиотек
0 |
0 / 0 / 0 Регистрация: 11.04.2013 Сообщений: 78 |
|
11.08.2020, 15:09 [ТС] |
10 |
P1XELCORE, iostream действительно, спасибо огромное) запустилось! только теперь ругается консоль отладки, но всё же спасибо)
0 |
фрилансер 4797 / 4397 / 935 Регистрация: 11.10.2019 Сообщений: 11,594 |
|
11.08.2020, 19:31 |
11 |
теперь ругается консоль отладки как ругается ?
0 |
0 / 0 / 0 Регистрация: 11.04.2013 Сообщений: 78 |
|
12.08.2020, 08:46 [ТС] |
12 |
как ругается ?
вот эти строки о том что какие-то символы загружены, они так и должны быть? мне кажется в окно вывода должно просто хеллоу ворд выходить)
0 |
фрилансер 4797 / 4397 / 935 Регистрация: 11.10.2019 Сообщений: 11,594 |
|
12.08.2020, 09:05 |
13 |
P1XELCORE, так и смотри в окне вывода. У тебя всё там не на английском, но предполагаю, это вкладка «выходные данные» а может и «терминал». Или вообще окно в настройках не включено Добавлено через 3 минуты
0 |
432 / 310 / 125 Регистрация: 18.07.2017 Сообщений: 1,410 |
|
12.08.2020, 09:41 |
14 |
какие-то символы загружены Судя по всему это загрузка метаданных для дебаггера из модулей, которые будут использоваться твоей программой.
мне кажется в окно вывода должно просто хеллоу ворд выходить А мне кажеся, что дебаггеру плевать на ввод-вывод, если не поставлена точка останова. Если у этой консоли та же логика что и в gdb, то туда нужно вводить название переменных либо выражения. И дебаггер покажет значение переменной, либо рассчитает выражение.
программу где нужно вводить входные данные, то она отладку не проходит вовсе Всмысле не проходит? Зависает? Ну так может нужно данные вводить не в консоль отладки, а в окно самой программы? У тебя там консолька не всплывает случаем на фоне?
0 |
0 / 0 / 0 Регистрация: 11.04.2013 Сообщений: 78 |
|
12.08.2020, 10:21 [ТС] |
15 |
но предполагаю, это вкладка «выходные данные» Во вкладке «выходные данные» пусто всегда, а в терминале вот такое выходит когда без проблем компилируется Миниатюры
0 |
0 / 0 / 0 Регистрация: 11.04.2013 Сообщений: 78 |
|
12.08.2020, 10:25 [ТС] |
16 |
Всмысле не проходит? Зависает? Ну так может нужно данные вводить не в консоль отладки, а в окно самой программы? У тебя там консолька не всплывает случаем на фоне? Консолька не всплывает для ввода данных, просто опять что-то пишет в консоль отладки и в терминал Миниатюры
0 |
Алексей1153 фрилансер 4797 / 4397 / 935 Регистрация: 11.10.2019 Сообщений: 11,594 |
||||
12.08.2020, 10:46 |
17 |
|||
P1XELCORE, кстати, да, у тебя приложение то консольное? Тогда консоль должна быть на экране. А в окно отладки, которое снизу, вывод в студии производится через TRACE/TRACE0/OutputDebugString (понадобится заголовок <Windows.h> ) Добавлено через 2 минуты
0 |
432 / 310 / 125 Регистрация: 18.07.2017 Сообщений: 1,410 |
|
12.08.2020, 10:53 |
18 |
просто опять что-то пишет в консоль отладки и в терминал Ну ок, а почему точку останова до сих пор не поставил? Как у тебя дебаггер будет стопать программу?
0 |
0 / 0 / 0 Регистрация: 11.04.2013 Сообщений: 78 |
|
12.08.2020, 11:06 [ТС] |
19 |
Ну ок, а почему точку останова до сих пор не поставил? Как у тебя дебаггер будет стопать программу? Поставил) всё так же) Миниатюры
0 |
0 / 0 / 0 Регистрация: 11.04.2013 Сообщений: 78 |
|
12.08.2020, 11:09 [ТС] |
20 |
кстати, да, у тебя приложение то консольное? ну, если консолька не выходит при запуске программы, значит не консольное?)
0 |
Im following along with the getting started guide and I got up to the first contract section in 2.1, I made the hello directory and cd into it, I touched hello.cpp and then opened it in VS Code, once I added the header
#include <eosio/eosio.hpp>
I got the red error squiggle, I do have the c++ extension for vs code installed, the error is
include errors detected. Please update your includePath eosio/eosio.hpp
asked Jun 22, 2019 at 10:37
I installed eosio.cdt
with brew. Adding /usr/local/Cellar/eosio.cdt/1.6.3/opt/eosio.cdt/include/**
to my includePath variable helped me
For eosio.cdt 1.7.0, the path is:
/usr/local/Cellar/eosio.cdt/1.7.0/opt/eosio.cdt/include/eosiolib/core/**
answered Oct 31, 2019 at 17:45
Because eosio-cpp builder is automatically find and include the eosio/eosio.hpp.
So Visual studio don’t know where is the eosio folder.
You have to check the eosio.cdt version. It must be 1.6.x, not 1.5.x version
And If you check the version. you can build the hello.cpp by using the eosio-cpp
eosio-cpp hello.cpp -o hello.wasm --abigen
you can see hello.wasm , hello.abi
answered Jun 22, 2019 at 13:15
T EomT Eom
887 bronze badges
8