Arduino IDE не видит файлы в папках

Mulin.by
Offline
Зарегистрирован: 28.07.2016

Случилась странная беда, при открытии проекта на рабочем компе, идеешка стала ругаться на отуствие файлов. Переустановка всего на свете (кроме, пожалуй, винды), снос половины софта и убийство половины процессов, как и следовало ожидать, не помогло. Идеешка упорна ругалась на отсутствие файлов или папок, объявленных через #include и лежащих в папке проекта - "бла-бла-бла no such file or directory бла-бла-бла".... Я уже и свойства папок и файлов изменял, но ничего не помогало. Зато выяснил, что Ардуиновская идеешка присваивает атрибут файлу проекта - "только для чтения"
Было решено создать тестовый проект такого вида:

#include "f\tip.h"

Все. Как видно из описания, в папке с проектом "test.ino" находится папка под именем "f". В этой папке лежит пустой файл "tip.h" но IDE пытается меня убедить в том, что  "бла-бла-бла no such file or directory бла-бла-бла"! Я даже слешь менял туда-сюда! Ничего не помогает. Спасите-помогите :(

Mulin.by
Offline
Зарегистрирован: 28.07.2016

Забыл упомянуть важную штуку. Как только я выкидываю файло из папки и прописываю прямой путь - все чики-пуки. Да, и у меня десятка (я не виноват, она сама) и последняя IDE, хотя я перепробывал разные версии.

kisoft
kisoft аватар
Offline
Зарегистрирован: 13.11.2012

Работает. Я уже приводил пример: Сообщение #10

На счет "Только для чтения" - это какая версия IDE? Слово "последняя" - ни о чем не говорит. У меня такого нет, все файлы нормальные.

Попробовал только что на Windows 7 Pro, x64 (IDE v1.6.8) всё нормально. Дома десятка x64, тоже нормально работает.

Что сломалось, не подскажу, не сталкивался, учитывая, что ни сообщений не приведено, ни номер версии IDE, хрустаяльный шар еще в пути с алиэкспресс.

 

Mulin.by
Offline
Зарегистрирован: 28.07.2016

На любой версии IDE такая проблема. Начиная с 1.5. Это  1.5.1,  1.5.2, 1.6.1, 1.6.9, 1.6.10 (Послденяя) . Прописывал и полные пути, тоже не помогает. Вавш ваираинт, ссылку на которые вы привели не имеет смысла ибо я и написал, что именно это у меня и не пашет именно на рабочем компе. Дома все ок на том же проекте. Уже и не знаю что делать. Демонстрации ради полностью повторяю ваш проет на версии IDE1.6.10 Результат ниже:

Клапауций 232
Offline
Зарегистрирован: 05.04.2016

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

kisoft
kisoft аватар
Offline
Зарегистрирован: 13.11.2012

На v1.6.8 такой проблемы у меня не было, обновился до 1.6.10, проблема появилась.

Похоже, что именно 1.6.8 ты не пробовал, а она работала. "Хорошая" софтина, с каждой новой версией, новые сюрпризы.

Поставил обратно v1.6.8, снова всё в порядке:

Клапауций 232
Offline
Зарегистрирован: 05.04.2016

kisoft пишет:

обновился до 1.6.10, проблема появилась.

 

не обновлялся - скачал 1.6.10 в зипе, всё прекрасно работает, как и все предыдущие версии.

*Семёрка 32 бит

Mulin.by
Offline
Зарегистрирован: 28.07.2016

Клапауций 232 пишет:

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

Не очень понял суть вопроса но - C:\Users\Сергей\Documents
Что ты имеешь ввиду под тем, что библиотеки лежат не в том месте? Лежат там где и должны, они прекрасно работают.
UPD Короче прописал даже прямой путь начиная с буквы диска и папки проекта - проблема осталась. Что за фигня творится, товарищи?

Клапауций 232
Offline
Зарегистрирован: 05.04.2016

Mulin.by пишет:

Что ты имеешь ввиду под тем, что библиотеки лежат не в том месте? 

имею ввиду, что ищешь свою папку "Мои документы" и правой кнопкой мыши смотришь её свойства: путь, права доступа, прочее.

*потому, как у меня ни в одной версии ИДЕ проблема не воспроизводится.

Mulin.by
Offline
Зарегистрирован: 28.07.2016

Клапауций 232 пишет:

Mulin.by пишет:

Что ты имеешь ввиду под тем, что библиотеки лежат не в том месте? 

имею ввиду, что ищешь свою папку "Мои документы" и правой кнопкой мыши смотришь её свойства: путь, права доступа, прочее.

*потому, как у меня ни в одной версии ИДЕ проблема не воспроизводится.

Я это все понял и проделал. Посмотрел и? Что я там должен увидеть и как это влияет на проблему?

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

Mulin.by пишет:

C:\Users\Сергей\Documents

Вы бы еще иероглифами папку назвали.

Впочем, для части программ что иероглифы, что кириллица - одинаково недопустимые излишества.

Клапауций 232
Offline
Зарегистрирован: 05.04.2016

Mulin.by пишет:

Что я там должен увидеть и как это влияет на проблему?

это влияет на возможность доступа к файлам в папке "Мои документы".

судя по симптомам - ИДЕ не обладает правами чтения папки "Мои документы".

Mulin.by
Offline
Зарегистрирован: 28.07.2016

andriano пишет:

Mulin.by пишет:

C:\Users\Сергей\Documents

Вы бы еще иероглифами папку назвали.

Впочем, для части программ что иероглифы, что кириллица - одинаково недопустимые излишества.

Как я называю папку не имеет никакого значения.

Клапауций 232
Offline
Зарегистрирован: 05.04.2016

Mulin.by пишет:

Как я называю папку не имеет никакого значения.

сделай скриншот

Mulin.by
Offline
Зарегистрирован: 28.07.2016

Клапауций 232 пишет:

Mulin.by пишет:

Что я там должен увидеть и как это влияет на проблему?

это влияет на возможность доступа к файлам в папке "Мои документы".

судя по симптомам - ИДЕ не обладает правами чтения папки "Мои документы".

К папке Мои документы доступ у IDE есть. Проверенно неоднократно. Если бы не было достпуа, симптомы были бы совершенно иными - отсутствовала БД по платам в первую очередь. А у меня отустствует доступ к папке проекта, который находится совсем не в "Моих документах" пример полного пути: D:/test(папка проекта и там же test.ino(файл проекта))/w(папка к которой нету доступа)/incled.h(файл, который необходимо подгурзить). До тех пор, пока файл лежит в папке "w"(имя и расположение не имеет значения, атрибуты многократно перепроверены так же), IDE не видит этот файл, как только я его кладу в корневую папку проекта "D:/test", проблема исчезает. Повторюсь - полные пути прописывал и это так же не решает проблемы.

Mulin.by
Offline
Зарегистрирован: 28.07.2016

Клапауций 232 пишет:

Mulin.by пишет:

Как я называю папку не имеет никакого значения.

сделай скриншот

Попробую сегодня до работы добраться и сделать. Может где-то проверить переменные среды.

Клапауций 232
Offline
Зарегистрирован: 05.04.2016

Mulin.by пишет:

А у меня отустствует доступ к папке проекта, который находится совсем не в "Моих документах" пример полного пути: D:/test(папка проекта и там же test.ino(файл проекта))/w(папка к которой нету доступа)/incled.h(файл, который необходимо подгурзить). До тех пор, пока файл лежит в папке "w"(имя и расположение не имеет значения, атрибуты многократно перепроверены так же), IDE не видит этот файл, как только я его кладу в корневую папку проекта "D:/test", проблема исчезает.

ок.

а здесь у тебя что настроено?

Mulin.by
Offline
Зарегистрирован: 28.07.2016

Вот такая штука:

Mulin.by
Offline
Зарегистрирован: 28.07.2016

Только что смог загрузить скетч, прописав полный путь и используя не прямой, а обратный слеш. Но это не решение проблемы, так как в моем проекте несколько десятков связанных друг с другом инклудами файлов. В каждом прописывать прямой путь - это гимор. Да и хотелось бы решить таки проблему.

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

Клапауций 232
Offline
Зарегистрирован: 05.04.2016

ок. так ты Mulin или Сергей?

*у кого ты украл этот комп?

Клапауций 232
Offline
Зарегистрирован: 05.04.2016

Mulin.by пишет:

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

это не твои проекты - это проекты Сергея. верни челу комп.

Mulin.by
Offline
Зарегистрирован: 28.07.2016

Клапауций 232 пишет:

ок. так ты Mulin или Сергей?

*у кого ты украл этот комп?

Это был домашний комп. Сейчас сижу за рабочим. Короче, есть мысли какие?

Клапауций 232
Offline
Зарегистрирован: 05.04.2016

ну, какие мысли? ты сам, то что постишь читаешь?

Mulin.by пишет:

C:\Users\Сергей\Documents

Mulin.by пишет:

А у меня отустствует доступ к папке проекта, который находится совсем не в "Моих документах" пример полного пути: D:/test(папка проекта и там же test.ino(файл проекта))/w(папка к которой нету доступа)/incled.h(файл, который необходимо подгурзить).

 

откуда ИДЕ знать, где корень твоего проекта и корень твоих документов?

Mulin.by
Offline
Зарегистрирован: 28.07.2016

Клапауций 232 пишет:

ну, какие мысли? ты сам, то что постишь читаешь?

Mulin.by пишет:

C:\Users\Сергей\Documents

Mulin.by пишет:

А у меня отустствует доступ к папке проекта, который находится совсем не в "Моих документах" пример полного пути: D:/test(папка проекта и там же test.ino(файл проекта))/w(папка к которой нету доступа)/incled.h(файл, который необходимо подгурзить).

 

откуда ИДЕ знать, где корень твоего проекта и корень твоих документов?

Я же объясняю, что первый путь я просто скопирывал и вставил в качестве примера с домашнего компа. Второй путь использутеся на рабочем компе. То есть забей на домашний комп, смотри на рабочий. Еще раз. Я на рабочем компе создаю проект с инклудом находящимся в папке,  он его не видит. Не на домашнем, а НА РАБОЧЕМ. То есть все пути проекта ИДЕ использует с РАБОЧЕГО компа. Забудь про домашний. Самый примитивный проект: на диске D создаю папку "Test", в ней проект "Test.ino" в котолрм приписан инклуд на файл, находящийся уже по пути "D:/Test/w/header.h". Он его не видит. При чем здесь пути к папке мои документы, если я не использую никаких библиотек и вообще ничего. При создании такого же проект на домашнем компе, никаких проблем не возникает. Сейчас копаю файл preferences.txt, авось где и разберусь.

Клапауций 232
Offline
Зарегистрирован: 05.04.2016

Mulin.by пишет:

Самый примитивный проект: на диске D создаю папку "Test", в ней проект "Test.ino" в котолрм приписан инклуд на файл, находящийся уже по пути "D:/Test/w/header.h". Он его не видит. 

ок. давай сюда всю папку "Test" с файлом скетча и подпапкой w c header.h, т.к. у меня проблема не воспроизводится с любыми слешами и путями.

Mulin.by
Offline
Зарегистрирован: 28.07.2016

Держи

UPD вот правильная ссылка

Клапауций 232
Offline
Зарегистрирован: 05.04.2016

ок.

на arduino-1.6.10 воспроизвелась ошибка

на arduino-1.6.9 без ошибок.

юзай arduino-1.6.9

Mulin.by
Offline
Зарегистрирован: 28.07.2016

Всем спасибо, проблема решена!

Клапауций 232
Offline
Зарегистрирован: 05.04.2016

Mulin.by пишет:

Всем спасибо, проблема решена!

как решена?

Клапауций 232
Offline
Зарегистрирован: 05.04.2016

вдогонку - на https://www.arduino.cc/en/Main/ReleaseNotes

ARDUINO 1.6.10 - 2016.07.26

[ide]
* Libraries can now define the property "includes" in the library.properties to
  tell the IDE which `#include <...>` lines should be added to the sketch when
  the "Include library" command is used. See:
  https://github.com/arduino/Arduino/wiki/Arduino-IDE-1.5:-Library-specifi...

что это может значить? у меня автоматизированный перевод невнятно...

Клапауций 232
Offline
Зарегистрирован: 05.04.2016

This is the specification for 3rd party library format to be used with Arduino IDE 1.5.x onwards.

  • rev.1 has been implemented starting with version 1.5.3 (now superseded by rev.2)
  • rev.2 will be implemented starting from version 1.5.6.
  • rev.2.1 will be implemented starting from version 1.6.10

https://github.com/arduino/Arduino/wiki/Arduino-IDE-1.5:-Library-specification#libraryproperties-file-format

Mulin.by
Offline
Зарегистрирован: 28.07.2016

Клапауций 232 пишет:

Mulin.by пишет:

Всем спасибо, проблема решена!

как решена?

Честно и сам не понял. Гонял туда-сюда версии, сносил, убивал. Правил преференсы... 
У меня же не библиотеки были

p.masyukov
p.masyukov аватар
Offline
Зарегистрирован: 14.11.2015

Что вы голову е.. Ну написанож по английски - Нет заголовочного файла фатальная ошибка

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

Клапауций 232
Offline
Зарегистрирован: 05.04.2016

p.masyukov пишет:

Что вы голову е.. Ну написанож по английски - Нет заголовочного файла фатальная ошибка

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

ты долбоёб?

Mulin.by
Offline
Зарегистрирован: 28.07.2016

Клапауций 232 пишет:

p.masyukov пишет:

Что вы голову е.. Ну написанож по английски - Нет заголовочного файла фатальная ошибка

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

ты долбоёб?

А тема. погляжу, жива)) Не обращай внимания, человек знаяя англицкий, думает, что знает все))

Olejanja
Offline
Зарегистрирован: 21.06.2022

Тема жива, сам пытаюсь разобраться, почему такая херня с этой Arduino IDE.

Вот что я заметил. Если поместить свой проект в стандартную папку проектов Arduino, типа "C:\Users\User\Documents\Arduino\", то описанной в топике проблемы не возникнет. А если папка проекта лежит в другом месте, то да, при компиляции возникает ошибка. Как побороть эту ошибку, пока ещё не знаю. Видимо студия ищет файлы относительно своей стандартной папки.

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

Видимо, это "другое место" содержит в пути кириллицу.

Olejanja
Offline
Зарегистрирован: 21.06.2022

Нет, только латинские буквы

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

Вы сами в настройках указываете размещение папок со скетчами. Если в настройках указано одно, а на самом деле папки лежат в другом месте, кто же виноват...

Olejanja
Offline
Зарегистрирован: 21.06.2022

Значит, это косяк студии. В той же Visual Studio прописываешь пути к библиотекам, и храни свои проекты где хочешь. А здесь, если проект в одном месте, а библиотека в другом, то проект не соберётся. Нельзя так, по моему, это какое-то навязывание идеологии. Хотя Arduino Studio изначально была создана для поделок, несмотря на то, что сейчас под неё существуют довольно сложные проекты

b707
Offline
Зарегистрирован: 26.05.2017

Olejanja пишет:

Значит, это косяк студии. В той же Visual Studio прописываешь пути к библиотекам, и храни свои проекты где хочешь. А здесь, если проект в одном месте, а библиотека в другом, то проект не соберётся.

а может дело в вашем коде?

Вы точно понимаете разницу между

#include <Library.h>

и

#include "Library.h"

 

Olejanja
Offline
Зарегистрирован: 21.06.2022

Понимаю

BOOM
BOOM аватар
Offline
Зарегистрирован: 14.11.2018

b707 пишет:

Вы точно понимаете разницу между

#include <Library.h>

и

#include "Library.h"

Вот у меня на версии 1.8.19 и так и так работает. Первый вариант написания (как я понимаю) ищет библиотеку в "стандартном месте" (куда они устанавливаются через IDE), второй вариант сначала ищет в папке со скетчем, если там библиотека найдена не была, то потом ищет в "стандартном месте" (куда они устанавливаются через IDE).

А вообще я стараюсь в папку со скетчем все используемые библиотеки складывать (так удобнее для меня, можно при необходимости оперативно заглянуть в код библиотеки и даже что-то подправить при случае))) ). Ну и судорожно искать и устанавливать их не нужно на другом ПК.

kalapanga
Offline
Зарегистрирован: 23.10.2016

Olejanja пишет:

Тема жива, сам пытаюсь разобраться, почему такая херня с этой Arduino IDE.

Вот что я заметил. Если поместить свой проект в стандартную папку проектов Arduino, типа "C:\Users\User\Documents\Arduino\", то описанной в топике проблемы не возникнет. А если папка проекта лежит в другом месте, то да, при компиляции возникает ошибка. Как побороть эту ошибку, пока ещё не знаю. Видимо студия ищет файлы относительно своей стандартной папки.

Зачем этот пустой разговор? Ведь у всех всё работает, только у Вас нет. Если бы Вы действительно хотели разобраться в проблеме, то сделали бы следующее: cоздали минимальный скетч использующий библиотеку (из поставки IDE или установленную пользователем? где лежит библиотека?) и показали его; убедились бы, что он не компилируется (т.е. Ваша проблема воспроизводится); привели полное сообщение об ошибке; указали версию Arduino IDE (номер, а так же установщик или портативная); куда (путь) установлена Arduino IDE; скриншот настроек Arduino IDE; путь к тестовому скетчу... Может даже ещё что-то забыл, но суть понятна - нужен максимум информации! А пока есть только заявление - я всё делаю верно, а Arduino IDE - гавно!

Вовсе не утверждаю, что Arduino IDE суперский безошибочный софт, но я вот только что перенёс свой скетч, использующий библиотеки из каталога, указанного в настройках в Sketchbook location, совсем в другое место, открыл его в IDE - он скомпилировался без ошибок..

b707
Offline
Зарегистрирован: 26.05.2017

kalapanga

+100!!!

 

Olejanja   Когда что-то не получается - в самую последнюю очередь надо обвинять софт, операционку или "неправильный компилятор". Сначала ищите ошибки у себя. 99.99% что косячите вы, а не ИДЕ

BOOM
BOOM аватар
Offline
Зарегистрирован: 14.11.2018

b707 пишет:

kalapanga

+100!!!

 

Olejanja   Когда что-то не получается - в самую последнюю очередь надо обвинять софт, операционку или "неправильный компилятор". Сначала ищите ошибки у себя. 99.99% что косячите вы, а не ИДЕ

+тыщамиллионофф

Все ели салат, но я один отравился - не правильный салат ))))

Olejanja
Offline
Зарегистрирован: 21.06.2022

kalapanga пишет:

Зачем этот пустой разговор? Ведь у всех всё работает, только у Вас нет. Если бы Вы действительно хотели разобраться в проблеме, то сделали бы следующее: cоздали минимальный скетч использующий библиотеку (из поставки IDE или установленную пользователем? где лежит библиотека?) и показали его; убедились бы, что он не компилируется (т.е. Ваша проблема воспроизводится); привели полное сообщение об ошибке; указали версию Arduino IDE (номер, а так же установщик или портативная); куда (путь) установлена Arduino IDE; скриншот настроек Arduino IDE; путь к тестовому скетчу... Может даже ещё что-то забыл, но суть понятна - нужен максимум информации! А пока есть только заявление - я всё делаю верно, а Arduino IDE - гавно!

Вовсе не утверждаю, что Arduino IDE суперский безошибочный софт, но я вот только что перенёс свой скетч, использующий библиотеки из каталога, указанного в настройках в Sketchbook location, совсем в другое место, открыл его в IDE - он скомпилировался без ошибок..

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

Для примера скомпилируйте код, представленный ниже. Файл utils.h лежит в той же папке, что и скетч, но в своей папке folder. И, просьба, расположите папку со скетчем вне Sketchbook location, тогда Вы поймёте, о чём я спрашивал.

 
Файл "test.ino"
#include "folder/utils.h"
void setup() {
    serial_setup();
}
void loop() {
    serial_print_point();
}
 
 
Файл "utils.h":
#include <Arduino.h>
void serial_setup() {
    Serial.begin(115200);
}
void serial_print_point() {
    delay(500);
    Serial.print('.');
}
 

Почему я располагаю проект вне Sketchbook location? Потому что мой проект лежит там, где мне это удобно. Другие проекты Arduino могут лежать на другом диске вообще, и как мне тогда задать этот Sketchbook location? Или я хочу запустить проект с локальной библиотекой на другом компьютере. Чтобы это сделать, я должен сначала скопировать проект, который хочу запустить в Sketchbook location, и только потом его запускать. По-моему, это как минимум не удобно. Как считаете?

А по поводу пустых разговоров - не нужно. Если бы у всех всё работало, как Вы говорите, то этого топика здесь бы не было, тем более, создавал его не я.

Green
Offline
Зарегистрирован: 01.10.2015

Только в "src/util" и глубже. И по красивому должно быть util.h и util.cpp.

Olejanja
Offline
Зарегистрирован: 21.06.2022

Благодарю за ответ! При размещении локальной библиотеки в папках "src/util" компиляция проекта происходит успешно. Это ответ на мой вопрос и вопрос этого топика

Green пишет:

И по красивому должно быть util.h и util.cpp.

Это я упростил

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

у меня компилируется из папки на рабочем столе:
 

Скетч использует 1596 байт (5%) памяти устройства. Всего доступно 30720 байт.
Глобальные переменные используют 184 байт (8%) динамической памяти, оставляя 1864 байт для локальных переменных. Максимум: 2048 байт.

Но это нарушение концепции IDE! Код в util.h как править? Все применяемые изменяемые файлы должны лежать в папке скетча

Olejanja
Offline
Зарегистрирован: 21.06.2022

У меня тоже компилируется из папки на рабочем столе. Только проекты свои я на рабочем столе не храню