Из-за чего компиллятор может не кушать библиотеки?

LAG
Offline
Зарегистрирован: 08.07.2016

при попытке компилляции выдаётся такое сообщение

"Arduino: 1.6.9 (Windows 8.1), Плата:"Arduino/Genuino Uno"

In file included from C:\Users\Oleg\Desktop\board\KeyboardAndMouseControl\KeyboardAndMouseControl.ino:2:0:

sketch\Keyboard.h:29:2: warning: #warning "Using legacy HID core (non pluggable)" [-Wcpp]

 #warning "Using legacy HID core (non pluggable)"

  ^

C:\Users\Oleg\Desktop\board\KeyboardAndMouseControl\KeyboardAndMouseControl.ino: In function 'void setup()':

KeyboardAndMouseControl:20: error: 'Клавиатура' не найдена. Убедитесь входит ли скетч в код '#include <Keyboard.h>'?
   Keyboard.begin();

   ^

C:\Users\Oleg\Desktop\board\KeyboardAndMouseControl\KeyboardAndMouseControl.ino: In function 'void loop()':

KeyboardAndMouseControl:25: error: 'Клавиатура' не найдена. Убедитесь входит ли скетч в код '#include <Keyboard.h>'?
     Keyboard.press('m');

     ^

exit status 1
'Клавиатура' не найдена. Убедитесь входит ли скетч в код '#include <Keyboard.h>'?

Этот отчёт будет иметь больше информации с
включенной опцией Файл -> Настройки ->
"Показать подробный вывод во время компиляции"

"

 

вопрос. из-за чего так? предустановленные библиотеки.. и кусок кода из примера.

или библиотеки не для всех проектов подходят? или что ещё?

ардуинка уно р3. впервые решил поиграться с демонстрационной платой.

раньше юзал CodeVisionAVR для создания проектов

DIYMan
DIYMan аватар
Offline
Зарегистрирован: 23.11.2015

Цитата:

Убедитесь входит ли в скетч код #include <Keyboard.h> 

Вам же написали. Проблема с пониманием?

LAG
Offline
Зарегистрирован: 08.07.2016

эмм..  ты хочешь сказать, что кроме #include <Keyboard.h> в начале файла что-то ещё должно быть? да  взят же за основу пример.. но пример не захотел компиллироваться... и я не понимаю,  в чём прикол.

 

тут синтаксис чутка отличается от привычного, но я не заметил ни в описании библиотеки,  ни в само файле ничего такого, из-за чего в нормальной ситуации оно бы могло не захотеть компиллироваться

LAG
Offline
Зарегистрирован: 08.07.2016

и да, при цитировании ты чутка изменил текст... там просили проверить, входит ли скетч В код самой библиотеки

DIYMan
DIYMan аватар
Offline
Зарегистрирован: 23.11.2015

Там просто тупой перевод на русский, вот и всё. Ты хочешь сказать, что стандартный пример не компилируется, так? Плата выбрана правильно? Вижу, что нет:

Цитата:

The keyboard functions enable a Leonardo, Micro, or Due

А у тебя:

Цитата:

Плата:"Arduino/Genuino Uno"

Вопросы?

З.Ы. Для просветления: https://www.arduino.cc/en/Reference/MouseKeyboard

LAG
Offline
Зарегистрирован: 08.07.2016

ну да.. но при компилляции же плата не обязана быть подключена к системнику... или тут всё хитрожопошнее?

DIYMan
DIYMan аватар
Offline
Зарегистрирован: 23.11.2015

LAG пишет:

ну да.. но при компилляции же плата не обязана быть подключена к системнику... или тут всё хитрожопошнее?

Ну конечно, щас. Ты когда выбираешь тип платы - ты таким образом говоришь препроцессору и компилятору, что у такой-то платы - такие-то настройки. При этом сама железка может быть и не подключена к компу, но плату ты выбрать правильно обязан. Странно было бы ожидать обратного.

LAG
Offline
Зарегистрирован: 08.07.2016

обвес и функционал сложновато назвать настроками... да и если бы я выбрал плату неправильно.. проект то всё равно должен бы был скомпиллироваться... разве что он не смог нормально пойти на моей плате, да и всё...

но проект даже компиллироваться не захотел...

DIYMan
DIYMan аватар
Offline
Зарегистрирован: 23.11.2015

LAG пишет:

обвес и функционал сложновато назвать настроками... да и если бы я выбрал плату неправильно.. проект то всё равно должен бы был скомпиллироваться... разве что он не смог нормально пойти на моей плате, да и всё...

но проект даже компиллироваться не захотел...

При чём тут обвес и функционал? Ты понимаешь, что физически железки разные? Кол-во ног, таймеров, распиновка и т.п.? Как компилятор будет понимать, что у железки сто тыщ ног, а не десяток? Для этого ему надо дать понять, под какую железку ты планируешь скомпилировать проект. Таким указанием является выбор платы в Arduino IDE. После этого компилятор понимает, что у такой-то железки есть пин A10, например (это для Меги, если выбрать плату Уно и попробовать поюзать пин A10 - то проект не скомпилируется, странно, правда? Особенно если учесть, что у Uno физически нет такого отверстия, куда можно было бы дунуть той травы, которую ты куришь).

Компилятор - не экстрасенс.

LAG
Offline
Зарегистрирован: 08.07.2016

в этом я не совсем нуб.. и хотел сказать, что настройки будут не у платы, а у компиллятора... и всё равно... это никак не объясняет то, что он не захотел компилить проект. ну выбрана не та плата... если у микроконтроллера есть интерфейс юсбишный, то проект уж должен был скомпилироваться...

если же там идёт преобразование одного интерфейса в другой - всё так просто, скорее всего, не будет... хотя.. даже описние на микроконтроллер не смотрел...
 

но эта ошибка при компилляции смутила...

DIYMan
DIYMan аватар
Offline
Зарегистрирован: 23.11.2015

Блин. Ну вот смотри: у каждой железки свои фичи. Чтобы скомпилировать HEX (прошивку), учитывающую эти фичи - надо знать, под какие фичи мы её компилируем, согласен? КАК компилятор узнает, под какую железку собирать проект? Ему кто на ухо нашепчет?

Если ты не совсем нуб - вот тебе аналогия: когда в Visual Studio ты выбираешь "Console project application" - у тебя ВНЕЗАПНО не появятся окошки, проект будет консольным. Потому что ты указал компилятору - хочу консольный проект. Тут - такая же шляпа.

LAG
Offline
Зарегистрирован: 08.07.2016

DIYMan пишет:

Блин. Ну вот смотри: у каждой железки свои фичи. Чтобы скомпилировать HEX (прошивку), учитывающую эти фичи - надо знать, под какие фичи мы её компилируем, согласен? КАК компилятор узнает, под какую железку собирать проект? Ему кто на ухо нашепчет?

Если ты не совсем нуб - вот тебе аналогия: когда в Visual Studio ты выбираешь "Console project application" - у тебя ВНЕЗАПНО не появятся окошки, проект будет консольным. Потому что ты указал компилятору - хочу консольный проект. Тут - такая же шляпа.

 

блин... суть же в другом... проект не компиллируется, хотя в инете полно проектов именно для этой платы даже.. по реализации хид устройств. я выбрал свою уно.. и не хочет он компиллироваться..

ради прикола выбрал леонард - и почему-то проект сразу же скомпиллировался.

так вот... чего именно не нравится компиллятору у уно р3 ? что именно должно означать то сообщение об ошибке?

 

 

а на счёт твоего примера... проект же всё равно бы скомпилился.. только не такой, какой нужно. а тут - ошибка

DIYMan
DIYMan аватар
Offline
Зарегистрирован: 23.11.2015

Прекращай курить траву! Я тебе сразу сказал, что под Uno проект не скомпилируется. Если ты этого понять не способен - адью. Я тебе даже ссылку приводил, видимо, зря.

LAG
Offline
Зарегистрирован: 08.07.2016

странно, именно то сообщение у меня не отобразилось, когда я читал, пасиб

 

а не посоветуешь библиотеки для эмуляции хид устройств под уно?

LAG
Offline
Зарегистрирован: 08.07.2016

на этой плате контроллер юсб внешний... вот жеж продавцы в чипидипе... просил же платку со встроенным контроллером в центральный мк...

 

извиняюсь за создание темы и свою тормознутость

 

и да, DIYMan... редактировать сообщения не есть хорошо. редактирование сообщения слишком легко пропустить, что я и сделал... из-за чего не мог допереть, о чём именно ты говоришь

 

и да, никому не советую посещать чипидип..  консультанты там не всегда дают точную инфу, так ещё и цены завышены многократно

DIYMan
DIYMan аватар
Offline
Зарегистрирован: 23.11.2015

LAG пишет:

и да, DIYMan... редактировать сообщения не есть хорошо. 

Я понял - это вместо "спасибо". Всегда пожалуйста, обращайся ещё.

LAG
Offline
Зарегистрирован: 08.07.2016

DIYMan пишет:

LAG пишет:

и да, DIYMan... редактировать сообщения не есть хорошо. 

Я понял - это вместо "спасибо". Всегда пожалуйста, обращайся ещё.

 

спасибо было чуть выше. а это сообщение лишь просило не использовать редактирование дабы избежать недопонимания вследствие пропущенной информации. а это не несёт же приятных эмоций ни одной из сторон диалога.

DIYMan
DIYMan аватар
Offline
Зарегистрирован: 23.11.2015

LAG пишет:

спасибо было чуть выше. а это сообщение лишь просило не использовать редактирование дабы избежать недопонимания вследствие пропущенной информации. а это не несёт же приятных эмоций ни одной из сторон диалога.

Я же не виноват, что ты быстрый как детская неожиданность: пост отредактировался буквально в течение пары минут после отправки, пока я ссылку тебе добывал. 

sifer111
Offline
Зарегистрирован: 05.01.2018

А что делать если плата обозначена но все равно выдает такую ошибку даже если библиотека указана?

 

DIYMan
DIYMan аватар
Offline
Зарегистрирован: 23.11.2015

sifer111 пишет:

А что делать если плата обозначена но все равно выдает такую ошибку даже если библиотека указана?

Такую - это какую?

sifer111
Offline
Зарегистрирован: 05.01.2018

Пишет что «клавиатура» не найдена, проверьте наличие “keyboard.h” в коде.

но в коде она есть

DIYMan
DIYMan аватар
Offline
Зарегистрирован: 23.11.2015

Плата правильно выбрана?