arduino-cli
arduino-cli copied to clipboard
Spurious "No such file or directory" error when library's path contains post-ASCII characters
Describe the problem
If a library is installed under a path that contains Cyrillic characters, Arduino CLI is unable to discover it.
Compilation of sketches with an #include
directive for a header file of a valid library fails with a "No such file or directory
" error.
To reproduce
$ arduino-cli version
arduino-cli.exe Version: git-snapshot Commit: 4b70e023 Date: 2023-01-31T03:19:27Z
$ export ARDUINO_DIRECTORIES_USER="/tmp/arduino-cli-directories/мікроконтролер"
$ arduino-cli lib install Arduino_JSON
[...]
$ mkdir /tmp/FooSketch
$ printf "#include <Arduino_JSON.h>\nvoid setup() {}\nvoid loop() {}" > /tmp/FooSketch/FooSketch.ino
$ arduino-cli compile --fqbn arduino:avr:uno /tmp/FooSketch/FooSketch.ino
C:\Users\per\AppData\Local\Temp\FooSketch\FooSketch.ino:1:10: fatal error: Arduino_JSON.h: No such file or directory
#include <Arduino_JSON.h>
^~~~~~~~~~~~~~~~
compilation terminated.
Used library Version Path
Arduino_JSON 0.2.0 C:\Users\per\AppData\Local\Temp\arduino-cli-directories\мікроконтролер\libraries\Arduino_JSON
Used platform Version Path
arduino:avr 1.8.6 C:\Users\per\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.8.6
Error during build: exit status 1
Expected behavior
Any path supported by the file system is also supported by the library discovery system
Arduino CLI version
Original report
Arduino IDE 1.8.10
Last verified with
a527c7cdea0694da3034ba9995b7c9eaecfe074b
Operating system
Windows
Operating system version
- 10
- 11
Additional context
The issue is not specific to Cyrillic. For example, it also occurs with a folder named 文
or Κώστας
.
The fault only occurs on Windows. I am not able to reproduce it on Ubuntu 22.04 or macOS Ventura machines.
After changing system's locale from English to Bulgarian (win1251) + restart, the compilation succeeded. Unfortunately this is not viable solution, because we have many computers (>150) and changing system locale requires admin privileges.
My suggestion is that the IDE is not using the unicode version of the API when searching for libraries?
This is more likely to occur for those using Microsoft Onedrive because the default location of the sketchbook is:
C:\Users\<username>\OneDrive\<localized "Documents">\Arduino
The <localized "Documents">
in the path above is a placeholder the word "Documents" localized for the user's locale (e.g., 文档
or Документы
)
Additional reports
- https://forum.arduino.cc/t/wemos-d1-mini-upload-problem/1084371
- https://forum.arduino.cc/t/no-such-file-or-directory-but-i-already-had-this-file/961118
- https://forum.arduino.cc/t/fatal-error-adafruit-neopixel-h-no-such-file-or-directory-but-i-have-it/1070069/15
- https://forum.arduino.cc/t/library-gives-error/1089633
- https://forum.arduino.cc/t/except-for-the-available-libraries-i-cant-use-other-libraries-even-though-i-have-downloaded-them/1092556
- https://forum.arduino.cc/t/compilation-error-due-to-library-hpp-file-not-being-detected/1127096
- https://forum.arduino.cc/t/which-arduino-nano-clone-i-have/1192347/11
- https://forum.arduino.cc/t/cannot-verify-the-arduino-code-because-the-installed-library-cannot-be-found/1215989
- https://forum.arduino.cc/t/10-fatal-error-onewire-h-no-such-file-or-directory/1223739
- https://forum.arduino.cc/t/unknown-error-for-arduino-1-8-19/1234260
- https://forum.arduino.cc/t/compilation-of-keypad-library-example-fails-key-h-no-such-file-or-directory/1241109
- https://forum.arduino.cc/t/mg135-library-please-answer/1254438
- https://forum.arduino.cc/t/i-keep-getting-library-compilation-error-despite-having-the-library/1255423
- https://forum.arduino.cc/t/no-such-file-or-directory/1255862/1
- https://forum.arduino.cc/t/no-such-file-or-directory/1255862/18
- https://forum.arduino.cc/t/arduino-ide-2-3-2-do-not-read-any-installed-library/1256849
- https://forum.arduino.cc/t/have-library-error-eventhough-installed/1258722
- https://forum.arduino.cc/t/arduino-ide-cannot-find-time-library-even-though-it-exists/1261462
- https://forum.arduino.cc/t/adafruit-bmp280-h-no-such-file-or-directory/1265651
- https://forum.arduino.cc/t/compilation-error-adafruit-mpu6050-h-no-such-file-or-directory/1279099
- https://forum.arduino.cc/t/pcm-h-no-such-file-or-directory/1282193
- https://forum.arduino.cc/t/no-such-file-directory-even-though-i-have-already-installed-the-related-library/1300806
- https://forum.arduino.cc/t/no-such-library-error-please-help/1302038
- https://forum.arduino.cc/t/fatal-error-no-such-file-or-directory/1304273
- https://forum.arduino.cc/t/compilation-error-for-missing-header-file-even-though-i-have-the-library-installed/1312514
Issue checklist
- [X] I searched for previous reports in the issue tracker
- [X] I verified the problem still occurs when using the nightly build
- [X] My report contains all necessary details