IDE находит несколько библиотек

Я не понимаю Arudino IDE. Всегда. Это часть вывода компиляции:

Alternatives for ArduinoJson.h: [[email protected]]
ResolveLibrary(ArduinoJson.h)
  -> candidates: [[email protected]]
/home/mark/.arduino15/packages/STM32/tools/xpack-arm-none-eabi-gcc/9.2.1-1.1/bin/arm-none-eabi-g++ -mcpu=cortex-m4 -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mthumb @/tmp/arduino_build_952252/sketch/build_opt.h -c -Os -w -std=gnu++14 -ffunction-sections -fdata-sections -nostdlib -fno-threadsafe-statics --param max-inline-insns-single=500 -fno-rtti -fno-exceptions -fno-use-cxa-atexit -I/home/mark/OSC -I/home/mark/.arduino15/packages/STM32/hardware/stm32/1.8.0/cores/arduino/avr -I/home/mark/.arduino15/packages/STM32/hardware/stm32/1.8.0/cores/arduino/stm32 -I/home/mark/.arduino15/packages/STM32/hardware/stm32/1.8.0/cores/arduino/stm32/LL -I/home/mark/.arduino15/packages/STM32/hardware/stm32/1.8.0/cores/arduino/stm32/usb -I/home/mark/.arduino15/packages/STM32/hardware/stm32/1.8.0/cores/arduino/stm32/usb/hid -I/home/mark/.arduino15/packages/STM32/hardware/stm32/1.8.0/cores/arduino/stm32/usb/cdc -I/home/mark/.arduino15/packages/STM32/hardware/stm32/1.8.0/system/Drivers/STM32F4xx_HAL_Driver/Inc -I/home/mark/.arduino15/packages/STM32/hardware/stm32/1.8.0/system/Drivers/STM32F4xx_HAL_Driver/Src -I/home/mark/.arduino15/packages/STM32/hardware/stm32/1.8.0/system/STM32F4xx -I/home/mark/.arduino15/packages/STM32/hardware/stm32/1.8.0/system/Middlewares/ST/STM32_USB_Device_Library/Core/Inc -I/home/mark/.arduino15/packages/STM32/hardware/stm32/1.8.0/system/Middlewares/ST/STM32_USB_Device_Library/Core/Src -w -x c++ -E -CC -DSTM32F4xx -DARDUINO=10810 -DARDUINO_NUCLEO_F429ZI -DARDUINO_ARCH_STM32 "-DBOARD_NAME=\"NUCLEO_F429ZI\"" -DSTM32F429xx -DHAL_UART_MODULE_ENABLED -I/home/mark/.arduino15/packages/STM32/tools/CMSIS/5.5.1/CMSIS/Core/Include/ -I/home/mark/.arduino15/packages/STM32/hardware/stm32/1.8.0/system/Drivers/CMSIS/Device/ST/STM32F4xx/Include/ -I/home/mark/.arduino15/packages/STM32/hardware/stm32/1.8.0/system/Drivers/CMSIS/Device/ST/STM32F4xx/Source/Templates/gcc/ -I/home/mark/.arduino15/packages/STM32/tools/CMSIS/5.5.1/CMSIS/DSP/Include -I/home/mark/.arduino15/packages/STM32/hardware/stm32/1.8.0/cores/arduino -I/home/mark/.arduino15/packages/STM32/hardware/stm32/1.8.0/variants/NUCLEO_F429ZI -I/home/mark/Arduino/libraries/STM32duino_LwIP/src -I/home/mark/Arduino/libraries/STM32duino_STM32Ethernet/src -I/home/mark/Arduino/libraries/ArduinoJson/src /tmp/arduino_build_952252/sketch/OSC.ino.cpp -o /dev/null
Alternatives for FlexyStepper.h: [[email protected]]
ResolveLibrary(FlexyStepper.h)
  -> candidates: [[email protected]]
/home/mark/.arduino15/packages/STM32/tools/xpack-arm-none-eabi-gcc/9.2.1-1.1/bin/arm-none-eabi-g++ -mcpu=cortex-m4 -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mthumb @/tmp/arduino_build_952252/sketch/build_opt.h -c -Os -w -std=gnu++14 -ffunction-sections -fdata-sections -nostdlib -fno-threadsafe-statics --param max-inline-insns-single=500 -fno-rtti -fno-exceptions -fno-use-cxa-atexit -I/home/mark/OSC -I/home/mark/.arduino15/packages/STM32/hardware/stm32/1.8.0/cores/arduino/avr -I/home/mark/.arduino15/packages/STM32/hardware/stm32/1.8.0/cores/arduino/stm32 -I/home/mark/.arduino15/packages/STM32/hardware/stm32/1.8.0/cores/arduino/stm32/LL -I/home/mark/.arduino15/packages/STM32/hardware/stm32/1.8.0/cores/arduino/stm32/usb -I/home/mark/.arduino15/packages/STM32/hardware/stm32/1.8.0/cores/arduino/stm32/usb/hid -I/home/mark/.arduino15/packages/STM32/hardware/stm32/1.8.0/cores/arduino/stm32/usb/cdc -I/home/mark/.arduino15/packages/STM32/hardware/stm32/1.8.0/system/Drivers/STM32F4xx_HAL_Driver/Inc -I/home/mark/.arduino15/packages/STM32/hardware/stm32/1.8.0/system/Drivers/STM32F4xx_HAL_Driver/Src -I/home/mark/.arduino15/packages/STM32/hardware/stm32/1.8.0/system/STM32F4xx -I/home/mark/.arduino15/packages/STM32/hardware/stm32/1.8.0/system/Middlewares/ST/STM32_USB_Device_Library/Core/Inc -I/home/mark/.arduino15/packages/STM32/hardware/stm32/1.8.0/system/Middlewares/ST/STM32_USB_Device_Library/Core/Src -w -x c++ -E -CC -DSTM32F4xx -DARDUINO=10810 -DARDUINO_NUCLEO_F429ZI -DARDUINO_ARCH_STM32 "-DBOARD_NAME=\"NUCLEO_F429ZI\"" -DSTM32F429xx -DHAL_UART_MODULE_ENABLED -I/home/mark/.arduino15/packages/STM32/tools/CMSIS/5.5.1/CMSIS/Core/Include/ -I/home/mark/.arduino15/packages/STM32/hardware/stm32/1.8.0/system/Drivers/CMSIS/Device/ST/STM32F4xx/Include/ -I/home/mark/.arduino15/packages/STM32/hardware/stm32/1.8.0/system/Drivers/CMSIS/Device/ST/STM32F4xx/Source/Templates/gcc/ -I/home/mark/.arduino15/packages/STM32/tools/CMSIS/5.5.1/CMSIS/DSP/Include -I/home/mark/.arduino15/packages/STM32/hardware/stm32/1.8.0/cores/arduino -I/home/mark/.arduino15/packages/STM32/hardware/stm32/1.8.0/variants/NUCLEO_F429ZI -I/home/mark/Arduino/libraries/STM32duino_LwIP/src -I/home/mark/Arduino/libraries/STM32duino_STM32Ethernet/src -I/home/mark/Arduino/libraries/ArduinoJson/src -I/home/mark/Arduino/libraries/FlexyStepper/src /tmp/arduino_build_952252/sketch/OSC.ino.cpp -o /dev/null
Alternatives for Tasker.h: [[email protected]]
ResolveLibrary(Tasker.h)
  -> candidates: [[email protected]]

Più di una libreria trovata per "ArduinoJson.h"
Usata: /home/mark/Arduino/libraries/ArduinoJson
Più di una libreria trovata per "FlexyStepper.h"
Usata: /home/mark/Arduino/libraries/FlexyStepper
Più di una libreria trovata per "Tasker.h"
Usata: /home/mark/Arduino/libraries/Tasker

Найдено более одной библиотеки в английском языке означает найдено более одной библиотеки. А Используется означает Используется.

Он сообщает мне, что находит несколько библиотек и выбирает одну из них. Прохладный. Но почему он не говорит мне где остальные?

Хорошо, да:

$ sudo find / -name Tasker.h
/home/mark/Arduino/libraries/Tasker/Tasker.h

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

, 👍0

Обсуждение

это известная ошибка Arduino IDE 1.8.10. игнорируй это. у вас нет нескольких библиотек, если в нем указана только одна. https://github.com/arduino/Arduino/issues/9601, @Juraj

Есть 3 места для ваших библиотек. Arduino IDE проверяет папку библиотеки Arduino IDE (путь установки). В папке со скетчами. И, наконец, в папке вашей платы. Как вы можете видеть в вашем журнале, у вас установлена специальная плата STM32, и IDE использует библиотеку, расположенную в .arduino15, а не ту, которая находится в Arduino. Тутто кьяро?, @Adriano


1 ответ


-1

Когда вы устанавливаете Arduino, для ваших библиотек используются 3 места:

  • Папка установки
  • Личная папка
  • Папка "Платы"

Папка установки

Это место, где вы установили Arduino. Обычно это:
В Windows: %ProgramFilesDir%\Arduino\libraries
В Linux: /home/{ИМЯ ПОЛЬЗОВАТЕЛЯ}/arduino-{VER}/libraries
Там вы можете найти 5-10 базовых библиотек.

Личная папка

Поскольку при каждом обновлении папка установки удаляется, скетчи и пользовательские библиотеки сохраняются в папке с вашими личными данными:
В Windows: %userprofile%\documents\Arduino\libraries
В Linux: /home/{ИМЯ ПОЛЬЗОВАТЕЛЯ}/Arduino/libraries/
Там вы можете найти все библиотеки, загруженные из IDE.

Папка "Платы"

Некоторые библиотеки поставляются с вашей платой и оптимизированы для нее. Arduino IDE всегда будет проверять эту папку перед поиском других библиотек.
В Windows: %LOCALAPPDATA%\Arduino15\packages\{BOARD}\hardware\{MODEL}\{VERSION}\libraries
В Linux: /home/{USERNAME}/.arduino15/packages/{BOARD}/hardware/{MODEL}/{VERSION}/libraries


Как я вижу, вы выбрали пользовательскую плату. Итак, Arduino IDE ищет в папке boards. Если он сможет найти библиотеку, он возьмет эту. Если нет, он будет искать в вашей личной папке и, наконец, в папке установки. Я не уверен, но он мог бы получить и более новую версию, если на ней есть версия. Не могу сказать, как среда IDE выбирает нужную библиотеку.

Если найдено более 1, появится предупреждающее сообщение. Но это всего лишь сообщение, вы можете просто проверить, была ли взята правильная библиотека.

,

Я знаю, где находятся библиотеки, но тут не в этом дело. Как видите, я искал из root, так что есть не более *одной* библиотеки. Это ошибка, как сказал Джурайдж., @Mark

Ты прав. извините... Я ответил, не прочитав полностью., @Adriano