Странности Arduino IDE: файл {archive_file_path}
- Войдите на сайт для отправки комментариев
Собственно, странность заключается именно в этом - создается файл с именем {archive_file_path} - да-да, именно так: в фигурных скобках и без расширения. Создается он в корне Arduino IDE версии 1.6.5-r2. Вариант portable. Этот эффект обнаружен только при компиляции под stm32.
Если верить https://arduino.github.io/arduino-cli/latest/platform-specification/ , данное имя не должно использоваться в качестве имени файла, а служит псевдонимом для "fully qualified archive file (ex. "/path/to/core.a"). This property was added in Arduino IDE 1.6.6/arduino builder 1.0.0-beta12 as a replacement for {build.path}/{archive_file}."
Этот эффект был обнаружен, когда Arduino IDE перестала компилировать скетчи для stm32, сообщая об ошибке повторно определенного имени в исходнике. Например, если я компилю для stm32f103, кроме файла для указанной платформы подхватывался файл для stm32f407. Пи этом ни чистка папки TEMP, ни перезапуск IDE не помогают. Более того, я даже целиком перемещал папку с файлами для stm32f407, а диагностика при этом продолжала указывать на уже не существующий файл. Оказалось, IDE создает файл {archive_file_path} и читает данные из него, а не с диска.
Пока я работаю с единственно платформой - stm32f103 или stm32f407, это никак не сказывается на работе, но стоит мне перейти от одной платформы к другой, - компиляция вылетает с ошибкой, т.к. кроме нужных подключаются файлы для альтернативной платформы, с которой я работал ранее, содержащиеся в файле {archive_file_path}.
В принципе, судя по номерам версий, это может быть эффектом "переходного периода". Но он мне попил немало крови, когда я обнаружил, что к проекту подключаются файлы, которых физически нет на диске, по крайней мере именно об этом говорила диагностика.