Visual Studio и Platformio ошибка компиляции
- Войдите на сайт для отправки комментариев
Сб, 05/12/2020 - 15:55
#include <Arduino.h>
void setup() { }
void loop() { func (); }
void func (){}
если скомпилировать в таком виде он напишет что
"'func' was not declared in this scope"
Соответственно если функцию переместить перед вызовом, то все компилится.
При этом вчера ему было пофик. Подумал может приложение какое установил и оно сломало, удалил вообще всю папку с приложениями, удалил файл с настройками студио, удалил студио и заново установил студио и платформио... и нифика, ему все равно не нравится.
Кажется хрен с ним, луп в низ переместить несложно, но он теперь требует что бы все функции были по порядку расположены, а это уже форменное безобразие.
Как это вообще исправить?
visual studio code
Набери в гугале "Прототипы функций С++"
Набери в гугале "Прототипы функций С++"
да, об этом этом я не подумал. с прототипом работает.
но вопрос всеравно остается открытым - что за фигня и как исправить
Никак. Это штатное поведение.
Никак. Это штатное поведение.
до этого то он компилил и заливал и ему было пофик
и ардуино иде тоже на это не ругается.
как исправить
Вызывать функцию после её объявления, а не до.
и ардуино иде тоже на это не ругается.
Это потому что разработчики Arduino IDE решили сами исправлять косяки за горе-программистами. Но это не правильный подход.
Ардуина, для упрощения, втихаря выносит прототипы всех функций в начало результирующего файла, а потом его компилирует. Чтобы сельским ледям и жентельменам жизнь проще казалась. На самом деле это нештатное поведение.
как исправить
Вызывать функцию после её объявления, а не до.
Спасибо кэп, но это неудобно.
Буквально вчера ненужно было об этом волноваться а значит как то можно все вернуть взад и не парится о расположении
Ищи галочку в настройках, чото про прототипы. На VS Micro она точно есть
Спасибо кэп, но это неудобно.
Это стандарт языка программирования.
Буквально вчера ненужно было об этом волноваться а значит как то можно все вернуть взад и не парится о расположении
Скажите спасибо разработчикам Arduino IDE, что они приучили Вас делать неправильно. Теперь Вам придётся переучиваться и делать как положено, по стандарту языка программирования.
Спасибо кэп, но это неудобно.
Буквально вчера ненужно было об этом волноваться а значит как то можно все вернуть взад и не парится о расположении
Если человеку не нравится новая реальность, он всегда может попробовать вернуться в прошлое...
Надо же, чего только люди не делают вместо того, чтобы почитать описание языка, на котором собираются писать.
Спасибо кэп, но это неудобно.
Буквально вчера ненужно было об этом волноваться а значит как то можно все вернуть взад и не парится о расположении
так вопрос именно в том как это сделать?
Ищи галочку в настройках, чото про прототипы. На VS Micro она точно есть
чет не нахожу ничего похожего
смирись тогда. пишы праильно.
так вопрос именно в том как это сделать?
Ответ был ещё в сообщении #4 - никак.
ну да, а буквально вчера фиксик в комп забирался и за меня прототипы дописывал?
Разработчики других IDE не позволяют себе такого баловства и отхода от стандарта, как разработчики Arduino IDE. Поэтому смирись и пиши правильно - сначала объявление функции, и только потом вызов.
Разработчики других IDE не позволяют себе такого баловства и отхода от стандарта, как разработчики Arduino IDE. Поэтому смирись и пиши правильно - сначала объявление функции, и только потом вызов.
а вчера VS code, просто забылся что-ли?
на всякий случай еще раз уточню:
буквально вчера VS code позволял себе побаловаться и все компилил.
сегодня же он вдруг перестал.
очевидно что либо я гдето галачку снял что вроде как вряд ли, либо какоето приложение все поломало.
и да я сегодня утановил приложение которое добавляет русский словарь, что бы компилятор не ругался на русские комменты, но сейчас я уже все поудалял и заново установил и все в зад не вернулось.
И вопрос не в том как правильно, а в том как сделать чтобы компилятор не дергал меня по прототипам как уже было раньше.
И вопрос не в том как правильно, а в том как сделать чтобы компилятор не дергал меня по прототипам как уже было раньше.
Изобрести собственный язык программирования, отличающийся от Си, и собственноручно написать для него компилятор.
PS. Для тех, кто в танке: то, что Вы хотите, имеет массу самых серьезных минусов, включая невозможность использовать существенные свойства языка Си, и только один очень маленький плюс - Вашу привычку. Другими словами, Вы хотите явно вредного.
И вопрос не в том как правильно, а в том как сделать чтобы компилятор не дергал меня по прототипам как уже было раньше.
Изобрести собственный язык программирования, отличающийся от Си, и собственноручно написать для него компилятор.
PS. Для тех, кто в танке: то, что Вы хотите, имеет массу самых серьезных минусов, включая невозможность использовать существенные свойства языка Си, и только один очень маленький плюс - Вашу привычку. Другими словами, Вы хотите явно вредного.
для тех кто в танке:
он уже так работал и я ничего специального для этого не делал.
вредно не вредно, а так было и я хочу вернуть.
У меня это в свойствах проекта
Все, понял где собака порылась.
Все файлы на которые он не ругался были .ino
А сейчас я пытался тот же код скомпилировать из .cpp
В общем если файл с разрешением ардуино то можешь не парится а если уж с++ то хрен тебе по всему рылу - пиши как положено ))
У меня это в свойствах проекта
а где это? что то я такого не нахожу
это в VS Code ?
Это в VS Micro
Это в VS Micro
Это ведь платный плагин для visual studio?
На рутрекере есть вылеченный
Понятно, спасибо!
что-то студио больно жирный какой-то
придется привыкать к этим дурацким прототипам
Понятно, спасибо!
что-то студио больно жирный какой-то
студию все одно придецца ставить, В-микро не сам по себе, а только с ней
ну если вмикро не пиратить то и не придется)
у меня студио код и в ней платформио, оно как то поменьше выходит чем студио, гдето мегабайт 200 против гигабайт 20 )
оно как то поменьше выходит чем студио, гдето мегабайт 200 против гигабайт 20 )
у меня студио и в-микро занимают 500 мег
а есть какое-то преимущество у VS в таком виде перед VS code?
а есть какое-то преимущество у VS в таком виде перед VS code?
не знаю, я пользовался Платформио один день и снес... мне не зашло.
я пользовался Платформио один день и снес... мне не зашло.
Аналагичненька
ну хз, вроде норм, после ардуино иде можно сказать что и вообще красота.
разве что прототипы эти дурацкие))