Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Cannot compile forked repo #48

Closed
eparadis opened this issue Jan 23, 2025 · 5 comments
Closed

Cannot compile forked repo #48

eparadis opened this issue Jan 23, 2025 · 5 comments

Comments

@eparadis
Copy link

What are the steps required to compile a fork of this repo?

Here are the steps I've taken, and perhaps someone can point out where I went wrong.

  1. I deleted the Library Manager version of the library from my ~/Documents/Arduino/libraries folder
  2. I forked the repo to my own Github account here
  3. I used git clone to clone my fork into ~/Documents/Arduino/libraries.
  4. I restarted my Arduino IDE (v2.3.4)
  5. I opened the 01_floppy_capture_track_test example using the File > Examples > Adafruit_Floppy menu item
  6. I modified the example to use the Pico pinout. (I'm using a Pico 2)
  7. I used the Verify button to compile the example

It seems to compile everything in the library and then fails to link with many lines referring to multiple definitions related to Adafruit_BusIO

At the end, it reports

Using library Adafruit Floppy at version 0.3.0 in folder: /Users/ed/Documents/Arduino/libraries/Adafruit_Floppy 
Using library Adafruit BusIO at version 1.17.0 in folder: /Users/ed/Documents/Arduino/libraries/Adafruit_BusIO 
Using library SPI at version 1.0 in folder: /Users/ed/Library/Arduino15/packages/rp2040/hardware/rp2040/4.4.2/libraries/SPI 
Using library SdFat at version 2.3.0 in folder: /Users/ed/Library/Arduino15/packages/rp2040/hardware/rp2040/4.4.2/libraries/SdFat 
Using library Wire at version 1.0 in folder: /Users/ed/Library/Arduino15/packages/rp2040/hardware/rp2040/4.4.2/libraries/Wire 

I have to admit I'm not very familiar with how modern Arduino libraries work. Is there some further step I need to take?

One thing that seems suspicious is that on the Release page for this project, it shows v0.5.0 to be the latest Release. But that end report indicates I'm using v0.3.0.

But the library.properties file on the main branch also says it is 0.3.0 so perhaps this is just a file that needs updating and has nothing to do with my issue.

Thank you for taking the time to write this and read my issue!

@jepler
Copy link
Member

jepler commented Jan 23, 2025

I don't know why you are seeing a build failure -- we test-compile many of the example sketches during our CI process, including 01_floppy_capture_track_test, on a couple of different boards, and the process doesn't encounter any errors.

You mentioned running on pico 2. We didn't test on any rp2350 boards during CI, but I have added a PR to test build on Feather RP2350 during CI (#50) -- this failed, though in an uninteresting way, because feather 2350 is not supported by our CI scripts yet. Locally, I can build the 01_floppy_capture_track_test example for feather rp2350 hstx and don't get any multiple definition errors.

I also entered a PR (#49) about the version number reporting and asked for help from a colleague. I do not release a lot of Arduino libraries and it looks like I forgot some manual steps required before a release.

To help continue to troubleshoot this, please show the modifications you made to the example, and your best guess at the relevant parts of the error messages during the build. Please use the code buttons or markdown syntax to make the text display properly. Make sure you include the library version info too.

/home/jepler/.local/arduino-1.8.16/arduino-builder -compile -logger=machine -hardware /home/jepler/.local/arduino-1.8.16/hardware -hardware /home/jepler/.arduino15/packages -hardware /home/jepler/Arduino/hardware -tools /home/jepler/.local/arduino-1.8.16/tools-builder -tools /home/jepler/.local/arduino-1.8.16/hardware/tools/avr -tools /home/jepler/.arduino15/packages -built-in-libraries /home/jepler/.local/arduino-1.8.16/libraries -libraries /home/jepler/Arduino/libraries -fqbn=pico:rp2040:adafruit_feather_rp2350_hstx:flash=8388608_0,freq=150,opt=Small,rtti=Disabled,stackprotect=Disabled,exceptions=Disabled,dbgport=Disabled,dbglvl=None,usbstack=tinyusb,ipbtstack=ipv4only,boot2=boot2_w25q080_2_padded_checksum,uploadmethod=default -ide-version=10816 -build-path /tmp/arduino_build_965116 -warnings=none -build-cache /tmp/arduino_cache_362636 -prefs=build.warn_data_percentage=75 -verbose /home/jepler/src/Adafruit_Floppy/examples/01_floppy_capture_track_test/01_floppy_capture_track_test.ino
[...]
Using board 'adafruit_feather_rp2350_hstx' from platform in folder: /home/jepler/Arduino/hardware/pico/rp2040
Using core 'rp2040' from platform in folder: /home/jepler/Arduino/hardware/pico/rp2040
[...]
Using library Adafruit_Floppy at version 0.3.0 in folder: /home/jepler/Arduino/libraries/Adafruit_Floppy 
Using library Adafruit_BusIO at version 1.15.0 in folder: /home/jepler/Arduino/libraries/Adafruit_BusIO 
Using library SPI at version 1.0 in folder: /home/jepler/Arduino/hardware/pico/rp2040/libraries/SPI 
Using library SdFat at version 2.2.3 in folder: /home/jepler/Arduino/libraries/SdFat 
Using library Wire at version 1.0 in folder: /home/jepler/Arduino/hardware/pico/rp2040/libraries/Wire 
Using library Adafruit_TinyUSB_Library at version 3.1.3 in folder: /home/jepler/Arduino/libraries/Adafruit_TinyUSB_Library
[...]
Sketch uses 68164 bytes (0%) of program storage space. Maximum is 8380416 bytes.
Global variables use 163180 bytes (31%) of dynamic memory, leaving 361108 bytes for local variables. Maximum is 524288 bytes.

@eparadis
Copy link
Author

The modifications I made to the 01_floppy_capture_track_test example are

  1. comment out lines 3 to 34
  2. comment out lines 51 to 55

The result is the pin definitions of:

#define DENSITY_PIN 2 // IDC 2
#define INDEX_PIN 3   // IDC 8
#define SELECT_PIN 4  // IDC 12
#define MOTOR_PIN 5   // IDC 16
#define DIR_PIN 6     // IDC 18
#define STEP_PIN 7    // IDC 20
#define WRDATA_PIN 8  // IDC 22 (not used during read)
#define WRGATE_PIN 9  // IDC 24 (not used during read)
#define TRK0_PIN 10   // IDC 26
#define PROT_PIN 11   // IDC 28
#define READ_PIN 12   // IDC 30
#define SIDE_PIN 13   // IDC 32
#define READY_PIN 14  // IDC 34
#ifndef USE_TINYUSB
#error "Please set Adafruit TinyUSB under Tools > USB Stack"
#endif

These are simply the original lines 35 through 50.

The version of the library I'm using is the HEAD of main

commit a8546adaf12b727c678ed21cc5506b2d40866745 (HEAD -> main, origin/main, origin/HEAD)
Merge: f898470 5fed247
Author: Jeff Epler <[email protected]>
Date:   Wed Jan 22 17:57:40 2025 -0600

    Merge pull request #47 from jepler/floppsy-build
    
    build mfm emulator during CI

(This currently still has the version set to 0.3.0, awaiting the merge of your PR to bump it to 0.6.1)

Here's the mess of output from the Arduino IDE:

Linking everything together...
/Users/ed/Library/Arduino15/packages/rp2040/tools/pqt-python3/1.0.1-base-3a57aed-1/python3 -I /Users/ed/Library/Arduino15/packages/rp2040/hardware/rp2040/4.4.2/tools/simplesub.py --input /Users/ed/Library/Arduino15/packages/rp2040/hardware/rp2040/4.4.2/lib/rp2350/memmap_default.ld --out /Users/ed/Library/Caches/arduino/sketches/D9B4422A4652A5E1A6AB7571B892BAF0/memmap_default.ld --sub __FLASH_LENGTH__ 4186112 --sub __EEPROM_START__ 272621568 --sub __FS_START__ 272621568 --sub __FS_END__ 272621568 --sub __RAM_LENGTH__ 512k --sub __PSRAM_LENGTH__ 0x000000
/Users/ed/Library/Arduino15/packages/rp2040/tools/pqt-gcc/4.0.1-8ec9d6f/bin/arm-none-eabi-gcc -Werror=return-type -Wno-psabi -DUSE_TINYUSB -I/Users/ed/Library/Arduino15/packages/rp2040/hardware/rp2040/4.4.2/libraries/Adafruit_TinyUSB_Arduino/src/arduino -DUSBD_PID=0x000f -DUSBD_VID=0x2e8a -DUSBD_MAX_POWER_MA=250 "-DUSB_MANUFACTURER=\"Raspberry Pi\"" "-DUSB_PRODUCT=\"Pico 2\"" -DLWIP_IPV6=0 -DLWIP_IPV4=1 -DLWIP_IGMP=1 -DLWIP_CHECKSUM_CTRL_PER_NETIF=1 -DFILE_COPY_CONSTRUCTOR_SELECT=FILE_COPY_CONSTRUCTOR_PUBLIC -DUSE_UTF8_LONG_NAMES=1 -DSDFAT_FILE_TYPE=3 -DDISABLE_FS_H_WARNING=1 "-DARDUINO_VARIANT=\"rpipico2\"" -DPICO_FLASH_SIZE_BYTES=4194304 @/Users/ed/Library/Arduino15/packages/rp2040/hardware/rp2040/4.4.2/lib/rp2350/platform_def.txt -mcpu=cortex-m33 -mthumb -march=armv8-m.main+fp+dsp -mfloat-abi=softfp -mcmse -ffunction-sections -fdata-sections -fno-exceptions -O3 -u _printf_float -u _scanf_float -c /Users/ed/Library/Arduino15/packages/rp2040/hardware/rp2040/4.4.2/boot2/rp2350/none.S -I/Users/ed/Library/Arduino15/packages/rp2040/hardware/rp2040/4.4.2/pico-sdk/src/rp2350/hardware_regs/include/ -I/Users/ed/Library/Arduino15/packages/rp2040/hardware/rp2040/4.4.2/pico-sdk/src/common/pico_binary_info/include -o /Users/ed/Library/Caches/arduino/sketches/D9B4422A4652A5E1A6AB7571B892BAF0/boot2.o
/Users/ed/Library/Arduino15/packages/rp2040/tools/pqt-gcc/4.0.1-8ec9d6f/bin/arm-none-eabi-g++ -L/Users/ed/Library/Caches/arduino/sketches/D9B4422A4652A5E1A6AB7571B892BAF0 -Werror=return-type -Wno-psabi -DUSE_TINYUSB -I/Users/ed/Library/Arduino15/packages/rp2040/hardware/rp2040/4.4.2/libraries/Adafruit_TinyUSB_Arduino/src/arduino -DUSBD_PID=0x000f -DUSBD_VID=0x2e8a -DUSBD_MAX_POWER_MA=250 "-DUSB_MANUFACTURER=\"Raspberry Pi\"" "-DUSB_PRODUCT=\"Pico 2\"" -DLWIP_IPV6=0 -DLWIP_IPV4=1 -DLWIP_IGMP=1 -DLWIP_CHECKSUM_CTRL_PER_NETIF=1 -DFILE_COPY_CONSTRUCTOR_SELECT=FILE_COPY_CONSTRUCTOR_PUBLIC -DUSE_UTF8_LONG_NAMES=1 -DSDFAT_FILE_TYPE=3 -DDISABLE_FS_H_WARNING=1 "-DARDUINO_VARIANT=\"rpipico2\"" -DPICO_FLASH_SIZE_BYTES=4194304 @/Users/ed/Library/Arduino15/packages/rp2040/hardware/rp2040/4.4.2/lib/rp2350/platform_def.txt -mcpu=cortex-m33 -mthumb -march=armv8-m.main+fp+dsp -mfloat-abi=softfp -mcmse -ffunction-sections -fdata-sections -fno-exceptions -O3 -u _printf_float -u _scanf_float @/Users/ed/Library/Arduino15/packages/rp2040/hardware/rp2040/4.4.2/lib/rp2350/platform_wrap.txt @/Users/ed/Library/Arduino15/packages/rp2040/hardware/rp2040/4.4.2/lib/core_wrap.txt -Wl,--cref -Wl,--check-sections -Wl,--gc-sections -Wl,--unresolved-symbols=report-all -Wl,--warn-common -Wl,--undefined=runtime_init_install_ram_vector_table -Wl,--undefined=__pre_init_runtime_init_clocks -Wl,--undefined=__pre_init_runtime_init_bootrom_reset -Wl,--undefined=__pre_init_runtime_init_early_resets -Wl,--undefined=__pre_init_runtime_init_usb_power_down -Wl,--undefined=__pre_init_runtime_init_clocks -Wl,--undefined=__pre_init_runtime_init_post_clock_resets -Wl,--undefined=__pre_init_runtime_init_spin_locks_reset -Wl,--undefined=__pre_init_runtime_init_boot_locks_reset -Wl,--undefined=__pre_init_runtime_init_bootrom_locking_enable -Wl,--undefined=__pre_init_runtime_init_mutex -Wl,--undefined=__pre_init_runtime_init_default_alarm_pool -Wl,--undefined=__pre_init_first_per_core_initializer -Wl,--undefined=__pre_init_runtime_init_per_core_bootrom_reset -Wl,--undefined=__pre_init_runtime_init_per_core_h3_irq_registers -Wl,--undefined=__pre_init_runtime_init_per_core_irq_priorities -Wl,--script=/Users/ed/Library/Caches/arduino/sketches/D9B4422A4652A5E1A6AB7571B892BAF0/memmap_default.ld -Wl,-Map,/Users/ed/Library/Caches/arduino/sketches/D9B4422A4652A5E1A6AB7571B892BAF0/adafruit_floppy_01_floppy_capture_track_test.ino.map -o /Users/ed/Library/Caches/arduino/sketches/D9B4422A4652A5E1A6AB7571B892BAF0/adafruit_floppy_01_floppy_capture_track_test.ino.elf -Wl,--no-warn-rwx-segments -Wl,--start-group /Users/ed/Library/Caches/arduino/sketches/D9B4422A4652A5E1A6AB7571B892BAF0/sketch/adafruit_floppy_01_floppy_capture_track_test.ino.cpp.o /Users/ed/Library/Caches/arduino/sketches/D9B4422A4652A5E1A6AB7571B892BAF0/libraries/Adafruit_Floppy/Adafruit_Floppy.cpp.o /Users/ed/Library/Caches/arduino/sketches/D9B4422A4652A5E1A6AB7571B892BAF0/libraries/Adafruit_Floppy/Adafruit_MFM_Floppy.cpp.o /Users/ed/Library/Caches/arduino/sketches/D9B4422A4652A5E1A6AB7571B892BAF0/libraries/Adafruit_Floppy/arch_rp2.cpp.o /Users/ed/Library/Caches/arduino/sketches/D9B4422A4652A5E1A6AB7571B892BAF0/libraries/Adafruit_Floppy/arch_samd51.cpp.o "/Users/ed/Library/Caches/arduino/sketches/D9B4422A4652A5E1A6AB7571B892BAF0/libraries/Adafruit_BusIO/Adafruit_BusIO_Register 2.cpp.o" /Users/ed/Library/Caches/arduino/sketches/D9B4422A4652A5E1A6AB7571B892BAF0/libraries/Adafruit_BusIO/Adafruit_BusIO_Register.cpp.o /Users/ed/Library/Caches/arduino/sketches/D9B4422A4652A5E1A6AB7571B892BAF0/libraries/Adafruit_BusIO/Adafruit_GenericDevice.cpp.o "/Users/ed/Library/Caches/arduino/sketches/D9B4422A4652A5E1A6AB7571B892BAF0/libraries/Adafruit_BusIO/Adafruit_I2CDevice 2.cpp.o" /Users/ed/Library/Caches/arduino/sketches/D9B4422A4652A5E1A6AB7571B892BAF0/libraries/Adafruit_BusIO/Adafruit_I2CDevice.cpp.o "/Users/ed/Library/Caches/arduino/sketches/D9B4422A4652A5E1A6AB7571B892BAF0/libraries/Adafruit_BusIO/Adafruit_SPIDevice 2.cpp.o" /Users/ed/Library/Caches/arduino/sketches/D9B4422A4652A5E1A6AB7571B892BAF0/libraries/Adafruit_BusIO/Adafruit_SPIDevice.cpp.o /Users/ed/Library/Caches/arduino/sketches/D9B4422A4652A5E1A6AB7571B892BAF0/libraries/SPI/SPI.a /Users/ed/Library/Caches/arduino/sketches/D9B4422A4652A5E1A6AB7571B892BAF0/libraries/SdFat/ExFatLib/ExFatDbg.cpp.o /Users/ed/Library/Caches/arduino/sketches/D9B4422A4652A5E1A6AB7571B892BAF0/libraries/SdFat/ExFatLib/ExFatFile.cpp.o /Users/ed/Library/Caches/arduino/sketches/D9B4422A4652A5E1A6AB7571B892BAF0/libraries/SdFat/ExFatLib/ExFatFilePrint.cpp.o /Users/ed/Library/Caches/arduino/sketches/D9B4422A4652A5E1A6AB7571B892BAF0/libraries/SdFat/ExFatLib/ExFatFileWrite.cpp.o /Users/ed/Library/Caches/arduino/sketches/D9B4422A4652A5E1A6AB7571B892BAF0/libraries/SdFat/ExFatLib/ExFatFormatter.cpp.o /Users/ed/Library/Caches/arduino/sketches/D9B4422A4652A5E1A6AB7571B892BAF0/libraries/SdFat/ExFatLib/ExFatName.cpp.o /Users/ed/Library/Caches/arduino/sketches/D9B4422A4652A5E1A6AB7571B892BAF0/libraries/SdFat/ExFatLib/ExFatPartition.cpp.o /Users/ed/Library/Caches/arduino/sketches/D9B4422A4652A5E1A6AB7571B892BAF0/libraries/SdFat/ExFatLib/ExFatVolume.cpp.o /Users/ed/Library/Caches/arduino/sketches/D9B4422A4652A5E1A6AB7571B892BAF0/libraries/SdFat/FatLib/FatDbg.cpp.o /Users/ed/Library/Caches/arduino/sketches/D9B4422A4652A5E1A6AB7571B892BAF0/libraries/SdFat/FatLib/FatFile.cpp.o /Users/ed/Library/Caches/arduino/sketches/D9B4422A4652A5E1A6AB7571B892BAF0/libraries/SdFat/FatLib/FatFileLFN.cpp.o /Users/ed/Library/Caches/arduino/sketches/D9B4422A4652A5E1A6AB7571B892BAF0/libraries/SdFat/FatLib/FatFilePrint.cpp.o /Users/ed/Library/Caches/arduino/sketches/D9B4422A4652A5E1A6AB7571B892BAF0/libraries/SdFat/FatLib/FatFileSFN.cpp.o /Users/ed/Library/Caches/arduino/sketches/D9B4422A4652A5E1A6AB7571B892BAF0/libraries/SdFat/FatLib/FatFormatter.cpp.o /Users/ed/Library/Caches/arduino/sketches/D9B4422A4652A5E1A6AB7571B892BAF0/libraries/SdFat/FatLib/FatName.cpp.o /Users/ed/Library/Caches/arduino/sketches/D9B4422A4652A5E1A6AB7571B892BAF0/libraries/SdFat/FatLib/FatPartition.cpp.o /Users/ed/Library/Caches/arduino/sketches/D9B4422A4652A5E1A6AB7571B892BAF0/libraries/SdFat/FatLib/FatVolume.cpp.o /Users/ed/Library/Caches/arduino/sketches/D9B4422A4652A5E1A6AB7571B892BAF0/libraries/SdFat/FreeStack.cpp.o /Users/ed/Library/Caches/arduino/sketches/D9B4422A4652A5E1A6AB7571B892BAF0/libraries/SdFat/FsLib/FsFile.cpp.o /Users/ed/Library/Caches/arduino/sketches/D9B4422A4652A5E1A6AB7571B892BAF0/libraries/SdFat/FsLib/FsNew.cpp.o /Users/ed/Library/Caches/arduino/sketches/D9B4422A4652A5E1A6AB7571B892BAF0/libraries/SdFat/FsLib/FsVolume.cpp.o /Users/ed/Library/Caches/arduino/sketches/D9B4422A4652A5E1A6AB7571B892BAF0/libraries/SdFat/MinimumSerial.cpp.o /Users/ed/Library/Caches/arduino/sketches/D9B4422A4652A5E1A6AB7571B892BAF0/libraries/SdFat/SdCard/Rp2040Sdio/PioSdioCard.cpp.o /Users/ed/Library/Caches/arduino/sketches/D9B4422A4652A5E1A6AB7571B892BAF0/libraries/SdFat/SdCard/SdCardInfo.cpp.o /Users/ed/Library/Caches/arduino/sketches/D9B4422A4652A5E1A6AB7571B892BAF0/libraries/SdFat/SdCard/SdSpiCard.cpp.o /Users/ed/Library/Caches/arduino/sketches/D9B4422A4652A5E1A6AB7571B892BAF0/libraries/SdFat/SdCard/TeensySdio/TeensySdio.cpp.o /Users/ed/Library/Caches/arduino/sketches/D9B4422A4652A5E1A6AB7571B892BAF0/libraries/SdFat/SpiDriver/SdSpiArtemis.cpp.o /Users/ed/Library/Caches/arduino/sketches/D9B4422A4652A5E1A6AB7571B892BAF0/libraries/SdFat/SpiDriver/SdSpiChipSelect.cpp.o /Users/ed/Library/Caches/arduino/sketches/D9B4422A4652A5E1A6AB7571B892BAF0/libraries/SdFat/SpiDriver/SdSpiDue.cpp.o /Users/ed/Library/Caches/arduino/sketches/D9B4422A4652A5E1A6AB7571B892BAF0/libraries/SdFat/SpiDriver/SdSpiParticle.cpp.o /Users/ed/Library/Caches/arduino/sketches/D9B4422A4652A5E1A6AB7571B892BAF0/libraries/SdFat/SpiDriver/SdSpiSTM32.cpp.o /Users/ed/Library/Caches/arduino/sketches/D9B4422A4652A5E1A6AB7571B892BAF0/libraries/SdFat/SpiDriver/SdSpiSTM32Core.cpp.o /Users/ed/Library/Caches/arduino/sketches/D9B4422A4652A5E1A6AB7571B892BAF0/libraries/SdFat/SpiDriver/SdSpiTeensy3.cpp.o /Users/ed/Library/Caches/arduino/sketches/D9B4422A4652A5E1A6AB7571B892BAF0/libraries/SdFat/common/FmtNumber.cpp.o /Users/ed/Library/Caches/arduino/sketches/D9B4422A4652A5E1A6AB7571B892BAF0/libraries/SdFat/common/FsCache.cpp.o /Users/ed/Library/Caches/arduino/sketches/D9B4422A4652A5E1A6AB7571B892BAF0/libraries/SdFat/common/FsDateTime.cpp.o /Users/ed/Library/Caches/arduino/sketches/D9B4422A4652A5E1A6AB7571B892BAF0/libraries/SdFat/common/FsName.cpp.o /Users/ed/Library/Caches/arduino/sketches/D9B4422A4652A5E1A6AB7571B892BAF0/libraries/SdFat/common/FsStructs.cpp.o /Users/ed/Library/Caches/arduino/sketches/D9B4422A4652A5E1A6AB7571B892BAF0/libraries/SdFat/common/FsUtf.cpp.o /Users/ed/Library/Caches/arduino/sketches/D9B4422A4652A5E1A6AB7571B892BAF0/libraries/SdFat/common/PrintBasic.cpp.o /Users/ed/Library/Caches/arduino/sketches/D9B4422A4652A5E1A6AB7571B892BAF0/libraries/SdFat/common/upcase.cpp.o /Users/ed/Library/Caches/arduino/sketches/D9B4422A4652A5E1A6AB7571B892BAF0/libraries/SdFat/iostream/StdioStream.cpp.o /Users/ed/Library/Caches/arduino/sketches/D9B4422A4652A5E1A6AB7571B892BAF0/libraries/SdFat/iostream/StreamBaseClass.cpp.o /Users/ed/Library/Caches/arduino/sketches/D9B4422A4652A5E1A6AB7571B892BAF0/libraries/SdFat/iostream/istream.cpp.o /Users/ed/Library/Caches/arduino/sketches/D9B4422A4652A5E1A6AB7571B892BAF0/libraries/SdFat/iostream/ostream.cpp.o /Users/ed/Library/Caches/arduino/sketches/D9B4422A4652A5E1A6AB7571B892BAF0/libraries/Wire/Wire.a /Users/ed/Library/Caches/arduino/sketches/D9B4422A4652A5E1A6AB7571B892BAF0/libraries/Adafruit_TinyUSB_Arduino/arduino/Adafruit_TinyUSB_API.cpp.o /Users/ed/Library/Caches/arduino/sketches/D9B4422A4652A5E1A6AB7571B892BAF0/libraries/Adafruit_TinyUSB_Arduino/arduino/Adafruit_USBD_CDC.cpp.o /Users/ed/Library/Caches/arduino/sketches/D9B4422A4652A5E1A6AB7571B892BAF0/libraries/Adafruit_TinyUSB_Arduino/arduino/Adafruit_USBD_Device.cpp.o /Users/ed/Library/Caches/arduino/sketches/D9B4422A4652A5E1A6AB7571B892BAF0/libraries/Adafruit_TinyUSB_Arduino/arduino/Adafruit_USBD_Interface.cpp.o /Users/ed/Library/Caches/arduino/sketches/D9B4422A4652A5E1A6AB7571B892BAF0/libraries/Adafruit_TinyUSB_Arduino/arduino/Adafruit_USBH_Host.cpp.o /Users/ed/Library/Caches/arduino/sketches/D9B4422A4652A5E1A6AB7571B892BAF0/libraries/Adafruit_TinyUSB_Arduino/arduino/cdc/Adafruit_USBH_CDC.cpp.o /Users/ed/Library/Caches/arduino/sketches/D9B4422A4652A5E1A6AB7571B892BAF0/libraries/Adafruit_TinyUSB_Arduino/arduino/hid/Adafruit_USBD_HID.cpp.o /Users/ed/Library/Caches/arduino/sketches/D9B4422A4652A5E1A6AB7571B892BAF0/libraries/Adafruit_TinyUSB_Arduino/arduino/midi/Adafruit_USBD_MIDI.cpp.o /Users/ed/Library/Caches/arduino/sketches/D9B4422A4652A5E1A6AB7571B892BAF0/libraries/Adafruit_TinyUSB_Arduino/arduino/msc/Adafruit_USBD_MSC.cpp.o /Users/ed/Library/Caches/arduino/sketches/D9B4422A4652A5E1A6AB7571B892BAF0/libraries/Adafruit_TinyUSB_Arduino/arduino/msc/Adafruit_USBH_MSC.cpp.o /Users/ed/Library/Caches/arduino/sketches/D9B4422A4652A5E1A6AB7571B892BAF0/libraries/Adafruit_TinyUSB_Arduino/arduino/ports/ch32/Adafruit_TinyUSB_ch32.cpp.o /Users/ed/Library/Caches/arduino/sketches/D9B4422A4652A5E1A6AB7571B892BAF0/libraries/Adafruit_TinyUSB_Arduino/arduino/ports/esp32/Adafruit_TinyUSB_esp32.cpp.o /Users/ed/Library/Caches/arduino/sketches/D9B4422A4652A5E1A6AB7571B892BAF0/libraries/Adafruit_TinyUSB_Arduino/arduino/ports/nrf/Adafruit_TinyUSB_nrf.cpp.o /Users/ed/Library/Caches/arduino/sketches/D9B4422A4652A5E1A6AB7571B892BAF0/libraries/Adafruit_TinyUSB_Arduino/arduino/ports/rp2040/Adafruit_TinyUSB_rp2040.cpp.o /Users/ed/Library/Caches/arduino/sketches/D9B4422A4652A5E1A6AB7571B892BAF0/libraries/Adafruit_TinyUSB_Arduino/arduino/ports/samd/Adafruit_TinyUSB_samd.cpp.o /Users/ed/Library/Caches/arduino/sketches/D9B4422A4652A5E1A6AB7571B892BAF0/libraries/Adafruit_TinyUSB_Arduino/arduino/video/Adafruit_USBD_Video.cpp.o /Users/ed/Library/Caches/arduino/sketches/D9B4422A4652A5E1A6AB7571B892BAF0/libraries/Adafruit_TinyUSB_Arduino/arduino/webusb/Adafruit_USBD_WebUSB.cpp.o /Users/ed/Library/Caches/arduino/sketches/D9B4422A4652A5E1A6AB7571B892BAF0/libraries/Adafruit_TinyUSB_Arduino/class/audio/audio_device.c.o /Users/ed/Library/Caches/arduino/sketches/D9B4422A4652A5E1A6AB7571B892BAF0/libraries/Adafruit_TinyUSB_Arduino/class/bth/bth_device.c.o /Users/ed/Library/Caches/arduino/sketches/D9B4422A4652A5E1A6AB7571B892BAF0/libraries/Adafruit_TinyUSB_Arduino/class/cdc/cdc_device.c.o /Users/ed/Library/Caches/arduino/sketches/D9B4422A4652A5E1A6AB7571B892BAF0/libraries/Adafruit_TinyUSB_Arduino/class/cdc/cdc_host.c.o /Users/ed/Library/Caches/arduino/sketches/D9B4422A4652A5E1A6AB7571B892BAF0/libraries/Adafruit_TinyUSB_Arduino/class/dfu/dfu_device.c.o /Users/ed/Library/Caches/arduino/sketches/D9B4422A4652A5E1A6AB7571B892BAF0/libraries/Adafruit_TinyUSB_Arduino/class/dfu/dfu_rt_device.c.o /Users/ed/Library/Caches/arduino/sketches/D9B4422A4652A5E1A6AB7571B892BAF0/libraries/Adafruit_TinyUSB_Arduino/class/hid/hid_device.c.o /Users/ed/Library/Caches/arduino/sketches/D9B4422A4652A5E1A6AB7571B892BAF0/libraries/Adafruit_TinyUSB_Arduino/class/hid/hid_host.c.o /Users/ed/Library/Caches/arduino/sketches/D9B4422A4652A5E1A6AB7571B892BAF0/libraries/Adafruit_TinyUSB_Arduino/class/midi/midi_device.c.o /Users/ed/Library/Caches/arduino/sketches/D9B4422A4652A5E1A6AB7571B892BAF0/libraries/Adafruit_TinyUSB_Arduino/class/msc/msc_device.c.o /Users/ed/Library/Caches/arduino/sketches/D9B4422A4652A5E1A6AB7571B892BAF0/libraries/Adafruit_TinyUSB_Arduino/class/msc/msc_host.c.o /Users/ed/Library/Caches/arduino/sketches/D9B4422A4652A5E1A6AB7571B892BAF0/libraries/Adafruit_TinyUSB_Arduino/class/net/ecm_rndis_device.c.o /Users/ed/Library/Caches/arduino/sketches/D9B4422A4652A5E1A6AB7571B892BAF0/libraries/Adafruit_TinyUSB_Arduino/class/net/ncm_device.c.o /Users/ed/Library/Caches/arduino/sketches/D9B4422A4652A5E1A6AB7571B892BAF0/libraries/Adafruit_TinyUSB_Arduino/class/usbtmc/usbtmc_device.c.o /Users/ed/Library/Caches/arduino/sketches/D9B4422A4652A5E1A6AB7571B892BAF0/libraries/Adafruit_TinyUSB_Arduino/class/vendor/vendor_device.c.o /Users/ed/Library/Caches/arduino/sketches/D9B4422A4652A5E1A6AB7571B892BAF0/libraries/Adafruit_TinyUSB_Arduino/class/video/video_device.c.o /Users/ed/Library/Caches/arduino/sketches/D9B4422A4652A5E1A6AB7571B892BAF0/libraries/Adafruit_TinyUSB_Arduino/common/tusb_fifo.c.o /Users/ed/Library/Caches/arduino/sketches/D9B4422A4652A5E1A6AB7571B892BAF0/libraries/Adafruit_TinyUSB_Arduino/device/usbd.c.o /Users/ed/Library/Caches/arduino/sketches/D9B4422A4652A5E1A6AB7571B892BAF0/libraries/Adafruit_TinyUSB_Arduino/device/usbd_control.c.o /Users/ed/Library/Caches/arduino/sketches/D9B4422A4652A5E1A6AB7571B892BAF0/libraries/Adafruit_TinyUSB_Arduino/host/hub.c.o /Users/ed/Library/Caches/arduino/sketches/D9B4422A4652A5E1A6AB7571B892BAF0/libraries/Adafruit_TinyUSB_Arduino/host/usbh.c.o /Users/ed/Library/Caches/arduino/sketches/D9B4422A4652A5E1A6AB7571B892BAF0/libraries/Adafruit_TinyUSB_Arduino/portable/analog/max3421/hcd_max3421.c.o /Users/ed/Library/Caches/arduino/sketches/D9B4422A4652A5E1A6AB7571B892BAF0/libraries/Adafruit_TinyUSB_Arduino/portable/microchip/samd/dcd_samd.c.o /Users/ed/Library/Caches/arduino/sketches/D9B4422A4652A5E1A6AB7571B892BAF0/libraries/Adafruit_TinyUSB_Arduino/portable/nordic/nrf5x/dcd_nrf5x.c.o /Users/ed/Library/Caches/arduino/sketches/D9B4422A4652A5E1A6AB7571B892BAF0/libraries/Adafruit_TinyUSB_Arduino/portable/raspberrypi/pio_usb/dcd_pio_usb.c.o /Users/ed/Library/Caches/arduino/sketches/D9B4422A4652A5E1A6AB7571B892BAF0/libraries/Adafruit_TinyUSB_Arduino/portable/raspberrypi/pio_usb/hcd_pio_usb.c.o /Users/ed/Library/Caches/arduino/sketches/D9B4422A4652A5E1A6AB7571B892BAF0/libraries/Adafruit_TinyUSB_Arduino/portable/raspberrypi/rp2040/dcd_rp2040.c.o /Users/ed/Library/Caches/arduino/sketches/D9B4422A4652A5E1A6AB7571B892BAF0/libraries/Adafruit_TinyUSB_Arduino/portable/raspberrypi/rp2040/hcd_rp2040.c.o /Users/ed/Library/Caches/arduino/sketches/D9B4422A4652A5E1A6AB7571B892BAF0/libraries/Adafruit_TinyUSB_Arduino/portable/raspberrypi/rp2040/rp2040_usb.c.o /Users/ed/Library/Caches/arduino/sketches/D9B4422A4652A5E1A6AB7571B892BAF0/libraries/Adafruit_TinyUSB_Arduino/portable/st/stm32_fsdev/dcd_stm32_fsdev.c.o /Users/ed/Library/Caches/arduino/sketches/D9B4422A4652A5E1A6AB7571B892BAF0/libraries/Adafruit_TinyUSB_Arduino/portable/synopsys/dwc2/dcd_dwc2.c.o /Users/ed/Library/Caches/arduino/sketches/D9B4422A4652A5E1A6AB7571B892BAF0/libraries/Adafruit_TinyUSB_Arduino/portable/wch/dcd_ch32_usbfs.c.o /Users/ed/Library/Caches/arduino/sketches/D9B4422A4652A5E1A6AB7571B892BAF0/libraries/Adafruit_TinyUSB_Arduino/portable/wch/dcd_ch32_usbhs.c.o /Users/ed/Library/Caches/arduino/sketches/D9B4422A4652A5E1A6AB7571B892BAF0/libraries/Adafruit_TinyUSB_Arduino/tusb.c.o /Users/ed/Library/Caches/arduino/sketches/D9B4422A4652A5E1A6AB7571B892BAF0/../../cores/0f3d4fe82941ecb6dd6a004f6cecfe46/core.a /Users/ed/Library/Caches/arduino/sketches/D9B4422A4652A5E1A6AB7571B892BAF0/boot2.o /Users/ed/Library/Arduino15/packages/rp2040/hardware/rp2040/4.4.2/lib/rp2350/ota.o /Users/ed/Library/Arduino15/packages/rp2040/hardware/rp2040/4.4.2/lib/rp2350/libpico.a /Users/ed/Library/Arduino15/packages/rp2040/hardware/rp2040/4.4.2/lib/rp2350/libipv4.a /Users/ed/Library/Arduino15/packages/rp2040/hardware/rp2040/4.4.2/lib/rp2350/libbearssl.a -lm -lc -lstdc++ -lc -Wl,--end-group
/Users/ed/Library/Arduino15/packages/rp2040/tools/pqt-gcc/4.0.1-8ec9d6f/bin/../lib/gcc/arm-none-eabi/14.2.0/../../../../arm-none-eabi/bin/ld: /Users/ed/Library/Caches/arduino/sketches/D9B4422A4652A5E1A6AB7571B892BAF0/libraries/Adafruit_BusIO/Adafruit_BusIO_Register.cpp.o: in function `_ZN23Adafruit_BusIO_RegisterC2EP18Adafruit_I2CDevicethhh':
/Users/ed/Documents/Arduino/libraries/Adafruit_BusIO/Adafruit_BusIO_Register.cpp:18: multiple definition of `_ZN23Adafruit_BusIO_RegisterC2EP18Adafruit_I2CDevicethhh'; /Users/ed/Library/Caches/arduino/sketches/D9B4422A4652A5E1A6AB7571B892BAF0/libraries/Adafruit_BusIO/Adafruit_BusIO_Register 2.cpp.o:/Users/ed/Documents/Arduino/libraries/Adafruit_BusIO/Adafruit_BusIO_Register 2.cpp:18: first defined here
/Users/ed/Library/Arduino15/packages/rp2040/tools/pqt-gcc/4.0.1-8ec9d6f/bin/../lib/gcc/arm-none-eabi/14.2.0/../../../../arm-none-eabi/bin/ld: /Users/ed/Library/Caches/arduino/sketches/D9B4422A4652A5E1A6AB7571B892BAF0/libraries/Adafruit_BusIO/Adafruit_BusIO_Register.cpp.o: in function `_ZN23Adafruit_BusIO_RegisterC2EP18Adafruit_I2CDevicethhh':
/Users/ed/Documents/Arduino/libraries/Adafruit_BusIO/Adafruit_BusIO_Register.cpp:18: multiple definition of `_ZN23Adafruit_BusIO_RegisterC1EP18Adafruit_I2CDevicethhh'; /Users/ed/Library/Caches/arduino/sketches/D9B4422A4652A5E1A6AB7571B892BAF0/libraries/Adafruit_BusIO/Adafruit_BusIO_Register 2.cpp.o:/Users/ed/Documents/Arduino/libraries/Adafruit_BusIO/Adafruit_BusIO_Register 2.cpp:18: first defined here
/Users/ed/Library/Arduino15/packages/rp2040/tools/pqt-gcc/4.0.1-8ec9d6f/bin/../lib/gcc/arm-none-eabi/14.2.0/../../../../arm-none-eabi/bin/ld: /Users/ed/Library/Caches/arduino/sketches/D9B4422A4652A5E1A6AB7571B892BAF0/libraries/Adafruit_BusIO/Adafruit_BusIO_Register.cpp.o: in function `_ZN23Adafruit_BusIO_RegisterC2EP18Adafruit_SPIDevicet26_Adafruit_BusIO_SPIRegTypehhh':
/Users/ed/Documents/Arduino/libraries/Adafruit_BusIO/Adafruit_BusIO_Register.cpp:45: multiple definition of `_ZN23Adafruit_BusIO_RegisterC2EP18Adafruit_SPIDevicet26_Adafruit_BusIO_SPIRegTypehhh'; /Users/ed/Library/Caches/arduino/sketches/D9B4422A4652A5E1A6AB7571B892BAF0/libraries/Adafruit_BusIO/Adafruit_BusIO_Register 2.cpp.o:/Users/ed/Documents/Arduino/libraries/Adafruit_BusIO/Adafruit_BusIO_Register 2.cpp:45: first defined here
/Users/ed/Library/Arduino15/packages/rp2040/tools/pqt-gcc/4.0.1-8ec9d6f/bin/../lib/gcc/arm-none-eabi/14.2.0/../../../../arm-none-eabi/bin/ld: /Users/ed/Library/Caches/arduino/sketches/D9B4422A4652A5E1A6AB7571B892BAF0/libraries/Adafruit_BusIO/Adafruit_BusIO_Register.cpp.o: in function `_ZN23Adafruit_BusIO_RegisterC2EP18Adafruit_SPIDevicet26_Adafruit_BusIO_SPIRegTypehhh':
/Users/ed/Documents/Arduino/libraries/Adafruit_BusIO/Adafruit_BusIO_Register.cpp:45: multiple definition of `_ZN23Adafruit_BusIO_RegisterC1EP18Adafruit_SPIDevicet26_Adafruit_BusIO_SPIRegTypehhh'; /Users/ed/Library/Caches/arduino/sketches/D9B4422A4652A5E1A6AB7571B892BAF0/libraries/Adafruit_BusIO/Adafruit_BusIO_Register 2.cpp.o:/Users/ed/Documents/Arduino/libraries/Adafruit_BusIO/Adafruit_BusIO_Register 2.cpp:45: first defined here
/Users/ed/Library/Arduino15/packages/rp2040/tools/pqt-gcc/4.0.1-8ec9d6f/bin/../lib/gcc/arm-none-eabi/14.2.0/../../../../arm-none-eabi/bin/ld: /Users/ed/Library/Caches/arduino/sketches/D9B4422A4652A5E1A6AB7571B892BAF0/libraries/Adafruit_BusIO/Adafruit_BusIO_Register.cpp.o: in function `_ZN23Adafruit_BusIO_RegisterC2EP18Adafruit_I2CDeviceP18Adafruit_SPIDevice26_Adafruit_BusIO_SPIRegTypethhh':
/Users/ed/Documents/Arduino/libraries/Adafruit_BusIO/Adafruit_BusIO_Register.cpp:78: multiple definition of `_ZN23Adafruit_BusIO_RegisterC2EP18Adafruit_I2CDeviceP18Adafruit_SPIDevice26_Adafruit_BusIO_SPIRegTypethhh'; /Users/ed/Library/Caches/arduino/sketches/D9B4422A4652A5E1A6AB7571B892BAF0/libraries/Adafruit_BusIO/Adafruit_BusIO_Register 2.cpp.o:/Users/ed/Documents/Arduino/libraries/Adafruit_BusIO/Adafruit_BusIO_Register 2.cpp:78: first defined here
/Users/ed/Library/Arduino15/packages/rp2040/tools/pqt-gcc/4.0.1-8ec9d6f/bin/../lib/gcc/arm-none-eabi/14.2.0/../../../../arm-none-eabi/bin/ld: /Users/ed/Library/Caches/arduino/sketches/D9B4422A4652A5E1A6AB7571B892BAF0/libraries/Adafruit_BusIO/Adafruit_BusIO_Register.cpp.o: in function `_ZN23Adafruit_BusIO_RegisterC2EP18Adafruit_I2CDeviceP18Adafruit_SPIDevice26_Adafruit_BusIO_SPIRegTypethhh':
/Users/ed/Documents/Arduino/libraries/Adafruit_BusIO/Adafruit_BusIO_Register.cpp:78: multiple definition of `_ZN23Adafruit_BusIO_RegisterC1EP18Adafruit_I2CDeviceP18Adafruit_SPIDevice26_Adafruit_BusIO_SPIRegTypethhh'; /Users/ed/Library/Caches/arduino/sketches/D9B4422A4652A5E1A6AB7571B892BAF0/libraries/Adafruit_BusIO/Adafruit_BusIO_Register 2.cpp.o:/Users/ed/Documents/Arduino/libraries/Adafruit_BusIO/Adafruit_BusIO_Register 2.cpp:78: first defined here
/Users/ed/Library/Arduino15/packages/rp2040/tools/pqt-gcc/4.0.1-8ec9d6f/bin/../lib/gcc/arm-none-eabi/14.2.0/../../../../arm-none-eabi/bin/ld: /Users/ed/Library/Caches/arduino/sketches/D9B4422A4652A5E1A6AB7571B892BAF0/libraries/Adafruit_BusIO/Adafruit_BusIO_Register.cpp.o: in function `_ZN23Adafruit_BusIO_Register5writeEPhh':
/Users/ed/Documents/Arduino/libraries/Adafruit_BusIO/Adafruit_BusIO_Register.cpp:118: multiple definition of `_ZN23Adafruit_BusIO_Register5writeEPhh'; /Users/ed/Library/Caches/arduino/sketches/D9B4422A4652A5E1A6AB7571B892BAF0/libraries/Adafruit_BusIO/Adafruit_BusIO_Register 2.cpp.o:/Users/ed/Documents/Arduino/libraries/Adafruit_BusIO/Adafruit_BusIO_Register 2.cpp:98: first defined here
/Users/ed/Library/Arduino15/packages/rp2040/tools/pqt-gcc/4.0.1-8ec9d6f/bin/../lib/gcc/arm-none-eabi/14.2.0/../../../../arm-none-eabi/bin/ld: /Users/ed/Library/Caches/arduino/sketches/D9B4422A4652A5E1A6AB7571B892BAF0/libraries/Adafruit_BusIO/Adafruit_BusIO_Register.cpp.o: in function `_ZN23Adafruit_BusIO_Register5writeEmh':
/Users/ed/Documents/Arduino/libraries/Adafruit_BusIO/Adafruit_BusIO_Register.cpp:161: multiple definition of `_ZN23Adafruit_BusIO_Register5writeEmh'; /Users/ed/Library/Caches/arduino/sketches/D9B4422A4652A5E1A6AB7571B892BAF0/libraries/Adafruit_BusIO/Adafruit_BusIO_Register 2.cpp.o:/Users/ed/Documents/Arduino/libraries/Adafruit_BusIO/Adafruit_BusIO_Register 2.cpp:142: first defined here
/Users/ed/Library/Arduino15/packages/rp2040/tools/pqt-gcc/4.0.1-8ec9d6f/bin/../lib/gcc/arm-none-eabi/14.2.0/../../../../arm-none-eabi/bin/ld: /Users/ed/Library/Caches/arduino/sketches/D9B4422A4652A5E1A6AB7571B892BAF0/libraries/Adafruit_BusIO/Adafruit_BusIO_Register.cpp.o: in function `_ZN23Adafruit_BusIO_Register4readEv':
/Users/ed/Documents/Arduino/libraries/Adafruit_BusIO/Adafruit_BusIO_Register.cpp:188: multiple definition of `_ZN23Adafruit_BusIO_Register4readEv'; /Users/ed/Library/Caches/arduino/sketches/D9B4422A4652A5E1A6AB7571B892BAF0/libraries/Adafruit_BusIO/Adafruit_BusIO_Register 2.cpp.o:/Users/ed/Documents/Arduino/libraries/Adafruit_BusIO/Adafruit_BusIO_Register 2.cpp:169: first defined here
/Users/ed/Library/Arduino15/packages/rp2040/tools/pqt-gcc/4.0.1-8ec9d6f/bin/../lib/gcc/arm-none-eabi/14.2.0/../../../../arm-none-eabi/bin/ld: /Users/ed/Library/Caches/arduino/sketches/D9B4422A4652A5E1A6AB7571B892BAF0/libraries/Adafruit_BusIO/Adafruit_BusIO_Register.cpp.o: in function `_ZN23Adafruit_BusIO_Register10readCachedEv':
/Users/ed/Documents/Arduino/libraries/Adafruit_BusIO/Adafruit_BusIO_Register.cpp:211: multiple definition of `_ZN23Adafruit_BusIO_Register10readCachedEv'; /Users/ed/Library/Caches/arduino/sketches/D9B4422A4652A5E1A6AB7571B892BAF0/libraries/Adafruit_BusIO/Adafruit_BusIO_Register 2.cpp.o:/Users/ed/Documents/Arduino/libraries/Adafruit_BusIO/Adafruit_BusIO_Register 2.cpp:192: first defined here
/Users/ed/Library/Arduino15/packages/rp2040/tools/pqt-gcc/4.0.1-8ec9d6f/bin/../lib/gcc/arm-none-eabi/14.2.0/../../../../arm-none-eabi/bin/ld: /Users/ed/Library/Caches/arduino/sketches/D9B4422A4652A5E1A6AB7571B892BAF0/libraries/Adafruit_BusIO/Adafruit_BusIO_Register.cpp.o: in function `_ZN23Adafruit_BusIO_Register4readEPhh':
/Users/ed/Documents/Arduino/libraries/Adafruit_BusIO/Adafruit_BusIO_Register.cpp:219: multiple definition of `_ZN23Adafruit_BusIO_Register4readEPhh'; /Users/ed/Library/Caches/arduino/sketches/D9B4422A4652A5E1A6AB7571B892BAF0/libraries/Adafruit_BusIO/Adafruit_BusIO_Register 2.cpp.o:/Users/ed/Documents/Arduino/libraries/Adafruit_BusIO/Adafruit_BusIO_Register 2.cpp:201: first defined here
/Users/ed/Library/Arduino15/packages/rp2040/tools/pqt-gcc/4.0.1-8ec9d6f/bin/../lib/gcc/arm-none-eabi/14.2.0/../../../../arm-none-eabi/bin/ld: /Users/ed/Library/Caches/arduino/sketches/D9B4422A4652A5E1A6AB7571B892BAF0/libraries/Adafruit_BusIO/Adafruit_BusIO_Register.cpp.o: in function `_ZN23Adafruit_BusIO_Register4readEPt':
/Users/ed/Documents/Arduino/libraries/Adafruit_BusIO/Adafruit_BusIO_Register.cpp:261: multiple definition of `_ZN23Adafruit_BusIO_Register4readEPt'; /Users/ed/Library/Caches/arduino/sketches/D9B4422A4652A5E1A6AB7571B892BAF0/libraries/Adafruit_BusIO/Adafruit_BusIO_Register 2.cpp.o:/Users/ed/Documents/Arduino/libraries/Adafruit_BusIO/Adafruit_BusIO_Register 2.cpp:242: first defined here
/Users/ed/Library/Arduino15/packages/rp2040/tools/pqt-gcc/4.0.1-8ec9d6f/bin/../lib/gcc/arm-none-eabi/14.2.0/../../../../arm-none-eabi/bin/ld: /Users/ed/Library/Caches/arduino/sketches/D9B4422A4652A5E1A6AB7571B892BAF0/libraries/Adafruit_BusIO/Adafruit_BusIO_Register.cpp.o: in function `_ZN23Adafruit_BusIO_Register4readEPh':
/Users/ed/Documents/Arduino/libraries/Adafruit_BusIO/Adafruit_BusIO_Register.cpp:284: multiple definition of `_ZN23Adafruit_BusIO_Register4readEPh'; /Users/ed/Library/Caches/arduino/sketches/D9B4422A4652A5E1A6AB7571B892BAF0/libraries/Adafruit_BusIO/Adafruit_BusIO_Register 2.cpp.o:/Users/ed/Documents/Arduino/libraries/Adafruit_BusIO/Adafruit_BusIO_Register 2.cpp:265: first defined here
/Users/ed/Library/Arduino15/packages/rp2040/tools/pqt-gcc/4.0.1-8ec9d6f/bin/../lib/gcc/arm-none-eabi/14.2.0/../../../../arm-none-eabi/bin/ld: /Users/ed/Library/Caches/arduino/sketches/D9B4422A4652A5E1A6AB7571B892BAF0/libraries/Adafruit_BusIO/Adafruit_BusIO_Register.cpp.o: in function `_ZN23Adafruit_BusIO_Register5printEPN7arduino6StreamE':
/Users/ed/Documents/Arduino/libraries/Adafruit_BusIO/Adafruit_BusIO_Register.cpp:297: multiple definition of `_ZN23Adafruit_BusIO_Register5printEPN7arduino6StreamE'; /Users/ed/Library/Caches/arduino/sketches/D9B4422A4652A5E1A6AB7571B892BAF0/libraries/Adafruit_BusIO/Adafruit_BusIO_Register 2.cpp.o:/Users/ed/Documents/Arduino/libraries/Adafruit_BusIO/Adafruit_BusIO_Register 2.cpp:278: first defined here
/Users/ed/Library/Arduino15/packages/rp2040/tools/pqt-gcc/4.0.1-8ec9d6f/bin/../lib/gcc/arm-none-eabi/14.2.0/../../../../arm-none-eabi/bin/ld: /Users/ed/Library/Caches/arduino/sketches/D9B4422A4652A5E1A6AB7571B892BAF0/libraries/Adafruit_BusIO/Adafruit_BusIO_Register.cpp.o: in function `_ZN23Adafruit_BusIO_Register7printlnEPN7arduino6StreamE':
/Users/ed/Documents/Arduino/libraries/Adafruit_BusIO/Adafruit_BusIO_Register.cpp:307: multiple definition of `_ZN23Adafruit_BusIO_Register7printlnEPN7arduino6StreamE'; /Users/ed/Library/Caches/arduino/sketches/D9B4422A4652A5E1A6AB7571B892BAF0/libraries/Adafruit_BusIO/Adafruit_BusIO_Register 2.cpp.o:/Users/ed/Documents/Arduino/libraries/Adafruit_BusIO/Adafruit_BusIO_Register 2.cpp:288: first defined here
/Users/ed/Library/Arduino15/packages/rp2040/tools/pqt-gcc/4.0.1-8ec9d6f/bin/../lib/gcc/arm-none-eabi/14.2.0/../../../../arm-none-eabi/bin/ld: /Users/ed/Library/Caches/arduino/sketches/D9B4422A4652A5E1A6AB7571B892BAF0/libraries/Adafruit_BusIO/Adafruit_BusIO_Register.cpp.o: in function `_ZN27Adafruit_BusIO_RegisterBitsC2EP23Adafruit_BusIO_Registerhh':
/Users/ed/Documents/Arduino/libraries/Adafruit_BusIO/Adafruit_BusIO_Register.cpp:321: multiple definition of `_ZN27Adafruit_BusIO_RegisterBitsC2EP23Adafruit_BusIO_Registerhh'; /Users/ed/Library/Caches/arduino/sketches/D9B4422A4652A5E1A6AB7571B892BAF0/libraries/Adafruit_BusIO/Adafruit_BusIO_Register 2.cpp.o:/Users/ed/Documents/Arduino/libraries/Adafruit_BusIO/Adafruit_BusIO_Register 2.cpp:302: first defined here
/Users/ed/Library/Arduino15/packages/rp2040/tools/pqt-gcc/4.0.1-8ec9d6f/bin/../lib/gcc/arm-none-eabi/14.2.0/../../../../arm-none-eabi/bin/ld: /Users/ed/Library/Caches/arduino/sketches/D9B4422A4652A5E1A6AB7571B892BAF0/libraries/Adafruit_BusIO/Adafruit_BusIO_Register.cpp.o: in function `_ZN27Adafruit_BusIO_RegisterBitsC2EP23Adafruit_BusIO_Registerhh':
/Users/ed/Documents/Arduino/libraries/Adafruit_BusIO/Adafruit_BusIO_Register.cpp:321: multiple definition of `_ZN27Adafruit_BusIO_RegisterBitsC1EP23Adafruit_BusIO_Registerhh'; /Users/ed/Library/Caches/arduino/sketches/D9B4422A4652A5E1A6AB7571B892BAF0/libraries/Adafruit_BusIO/Adafruit_BusIO_Register 2.cpp.o:/Users/ed/Documents/Arduino/libraries/Adafruit_BusIO/Adafruit_BusIO_Register 2.cpp:302: first defined here
/Users/ed/Library/Arduino15/packages/rp2040/tools/pqt-gcc/4.0.1-8ec9d6f/bin/../lib/gcc/arm-none-eabi/14.2.0/../../../../arm-none-eabi/bin/ld: /Users/ed/Library/Caches/arduino/sketches/D9B4422A4652A5E1A6AB7571B892BAF0/libraries/Adafruit_BusIO/Adafruit_BusIO_Register.cpp.o: in function `_ZN27Adafruit_BusIO_RegisterBits4readEv':
/Users/ed/Documents/Arduino/libraries/Adafruit_BusIO/Adafruit_BusIO_Register.cpp:330: multiple definition of `_ZN27Adafruit_BusIO_RegisterBits4readEv'; /Users/ed/Library/Caches/arduino/sketches/D9B4422A4652A5E1A6AB7571B892BAF0/libraries/Adafruit_BusIO/Adafruit_BusIO_Register 2.cpp.o:/Users/ed/Documents/Arduino/libraries/Adafruit_BusIO/Adafruit_BusIO_Register 2.cpp:311: first defined here
/Users/ed/Library/Arduino15/packages/rp2040/tools/pqt-gcc/4.0.1-8ec9d6f/bin/../lib/gcc/arm-none-eabi/14.2.0/../../../../arm-none-eabi/bin/ld: /Users/ed/Library/Caches/arduino/sketches/D9B4422A4652A5E1A6AB7571B892BAF0/libraries/Adafruit_BusIO/Adafruit_BusIO_Register.cpp.o: in function `_ZN27Adafruit_BusIO_RegisterBits5writeEm':
/Users/ed/Documents/Arduino/libraries/Adafruit_BusIO/Adafruit_BusIO_Register.cpp:342: multiple definition of `_ZN27Adafruit_BusIO_RegisterBits5writeEm'; /Users/ed/Library/Caches/arduino/sketches/D9B4422A4652A5E1A6AB7571B892BAF0/libraries/Adafruit_BusIO/Adafruit_BusIO_Register 2.cpp.o:/Users/ed/Documents/Arduino/libraries/Adafruit_BusIO/Adafruit_BusIO_Register 2.cpp:323: first defined here
/Users/ed/Library/Arduino15/packages/rp2040/tools/pqt-gcc/4.0.1-8ec9d6f/bin/../lib/gcc/arm-none-eabi/14.2.0/../../../../arm-none-eabi/bin/ld: /Users/ed/Library/Caches/arduino/sketches/D9B4422A4652A5E1A6AB7571B892BAF0/libraries/Adafruit_BusIO/Adafruit_BusIO_Register.cpp.o: in function `_ZN23Adafruit_BusIO_Register5widthEv':
/Users/ed/Documents/Arduino/libraries/Adafruit_BusIO/Adafruit_BusIO_Register.cpp:360: multiple definition of `_ZN23Adafruit_BusIO_Register5widthEv'; /Users/ed/Library/Caches/arduino/sketches/D9B4422A4652A5E1A6AB7571B892BAF0/libraries/Adafruit_BusIO/Adafruit_BusIO_Register 2.cpp.o:/Users/ed/Documents/Arduino/libraries/Adafruit_BusIO/Adafruit_BusIO_Register 2.cpp:341: first defined here
/Users/ed/Library/Arduino15/packages/rp2040/tools/pqt-gcc/4.0.1-8ec9d6f/bin/../lib/gcc/arm-none-eabi/14.2.0/../../../../arm-none-eabi/bin/ld: /Users/ed/Library/Caches/arduino/sketches/D9B4422A4652A5E1A6AB7571B892BAF0/libraries/Adafruit_BusIO/Adafruit_BusIO_Register.cpp.o: in function `_ZN23Adafruit_BusIO_Register8setWidthEh':
/Users/ed/Documents/Arduino/libraries/Adafruit_BusIO/Adafruit_BusIO_Register.cpp:366: multiple definition of `_ZN23Adafruit_BusIO_Register8setWidthEh'; /Users/ed/Library/Caches/arduino/sketches/D9B4422A4652A5E1A6AB7571B892BAF0/libraries/Adafruit_BusIO/Adafruit_BusIO_Register 2.cpp.o:/Users/ed/Documents/Arduino/libraries/Adafruit_BusIO/Adafruit_BusIO_Register 2.cpp:347: first defined here
/Users/ed/Library/Arduino15/packages/rp2040/tools/pqt-gcc/4.0.1-8ec9d6f/bin/../lib/gcc/arm-none-eabi/14.2.0/../../../../arm-none-eabi/bin/ld: /Users/ed/Library/Caches/arduino/sketches/D9B4422A4652A5E1A6AB7571B892BAF0/libraries/Adafruit_BusIO/Adafruit_BusIO_Register.cpp.o: in function `_ZN23Adafruit_BusIO_Register10setAddressEt':
/Users/ed/Documents/Arduino/libraries/Adafruit_BusIO/Adafruit_BusIO_Register.cpp:373: multiple definition of `_ZN23Adafruit_BusIO_Register10setAddressEt'; /Users/ed/Library/Caches/arduino/sketches/D9B4422A4652A5E1A6AB7571B892BAF0/libraries/Adafruit_BusIO/Adafruit_BusIO_Register 2.cpp.o:/Users/ed/Documents/Arduino/libraries/Adafruit_BusIO/Adafruit_BusIO_Register 2.cpp:354: first defined here
/Users/ed/Library/Arduino15/packages/rp2040/tools/pqt-gcc/4.0.1-8ec9d6f/bin/../lib/gcc/arm-none-eabi/14.2.0/../../../../arm-none-eabi/bin/ld: /Users/ed/Library/Caches/arduino/sketches/D9B4422A4652A5E1A6AB7571B892BAF0/libraries/Adafruit_BusIO/Adafruit_BusIO_Register.cpp.o: in function `_ZN23Adafruit_BusIO_Register15setAddressWidthEt':
/Users/ed/Documents/Arduino/libraries/Adafruit_BusIO/Adafruit_BusIO_Register.cpp:381: multiple definition of `_ZN23Adafruit_BusIO_Register15setAddressWidthEt'; /Users/ed/Library/Caches/arduino/sketches/D9B4422A4652A5E1A6AB7571B892BAF0/libraries/Adafruit_BusIO/Adafruit_BusIO_Register 2.cpp.o:/Users/ed/Documents/Arduino/libraries/Adafruit_BusIO/Adafruit_BusIO_Register 2.cpp:362: first defined here
/Users/ed/Library/Arduino15/packages/rp2040/tools/pqt-gcc/4.0.1-8ec9d6f/bin/../lib/gcc/arm-none-eabi/14.2.0/../../../../arm-none-eabi/bin/ld: /Users/ed/Library/Caches/arduino/sketches/D9B4422A4652A5E1A6AB7571B892BAF0/libraries/Adafruit_BusIO/Adafruit_I2CDevice.cpp.o: in function `_ZN18Adafruit_I2CDeviceC2EhP7TwoWire':
/Users/ed/Documents/Arduino/libraries/Adafruit_BusIO/Adafruit_I2CDevice.cpp:10: multiple definition of `_ZN18Adafruit_I2CDeviceC2EhP7TwoWire'; /Users/ed/Library/Caches/arduino/sketches/D9B4422A4652A5E1A6AB7571B892BAF0/libraries/Adafruit_BusIO/Adafruit_I2CDevice 2.cpp.o:/Users/ed/Documents/Arduino/libraries/Adafruit_BusIO/Adafruit_I2CDevice 2.cpp:10: first defined here
/Users/ed/Library/Arduino15/packages/rp2040/tools/pqt-gcc/4.0.1-8ec9d6f/bin/../lib/gcc/arm-none-eabi/14.2.0/../../../../arm-none-eabi/bin/ld: /Users/ed/Library/Caches/arduino/sketches/D9B4422A4652A5E1A6AB7571B892BAF0/libraries/Adafruit_BusIO/Adafruit_I2CDevice.cpp.o: in function `_ZN18Adafruit_I2CDeviceC2EhP7TwoWire':
/Users/ed/Documents/Arduino/libraries/Adafruit_BusIO/Adafruit_I2CDevice.cpp:10: multiple definition of `_ZN18Adafruit_I2CDeviceC1EhP7TwoWire'; /Users/ed/Library/Caches/arduino/sketches/D9B4422A4652A5E1A6AB7571B892BAF0/libraries/Adafruit_BusIO/Adafruit_I2CDevice 2.cpp.o:/Users/ed/Documents/Arduino/libraries/Adafruit_BusIO/Adafruit_I2CDevice 2.cpp:10: first defined here
/Users/ed/Library/Arduino15/packages/rp2040/tools/pqt-gcc/4.0.1-8ec9d6f/bin/../lib/gcc/arm-none-eabi/14.2.0/../../../../arm-none-eabi/bin/ld: /Users/ed/Library/Caches/arduino/sketches/D9B4422A4652A5E1A6AB7571B892BAF0/libraries/Adafruit_BusIO/Adafruit_I2CDevice.cpp.o: in function `_ZN18Adafruit_I2CDevice5beginEb':
/Users/ed/Documents/Arduino/libraries/Adafruit_BusIO/Adafruit_I2CDevice.cpp:30: multiple definition of `_ZN18Adafruit_I2CDevice5beginEb'; /Users/ed/Library/Caches/arduino/sketches/D9B4422A4652A5E1A6AB7571B892BAF0/libraries/Adafruit_BusIO/Adafruit_I2CDevice 2.cpp.o:/Users/ed/Documents/Arduino/libraries/Adafruit_BusIO/Adafruit_I2CDevice 2.cpp:30: first defined here
/Users/ed/Library/Arduino15/packages/rp2040/tools/pqt-gcc/4.0.1-8ec9d6f/bin/../lib/gcc/arm-none-eabi/14.2.0/../../../../arm-none-eabi/bin/ld: /Users/ed/Library/Caches/arduino/sketches/D9B4422A4652A5E1A6AB7571B892BAF0/libraries/Adafruit_BusIO/Adafruit_I2CDevice.cpp.o: in function `_ZN18Adafruit_I2CDevice3endEv':
/Users/ed/Documents/Arduino/libraries/Adafruit_BusIO/Adafruit_I2CDevice.cpp:43: multiple definition of `_ZN18Adafruit_I2CDevice3endEv'; /Users/ed/Library/Caches/arduino/sketches/D9B4422A4652A5E1A6AB7571B892BAF0/libraries/Adafruit_BusIO/Adafruit_I2CDevice 2.cpp.o:/Users/ed/Documents/Arduino/libraries/Adafruit_BusIO/Adafruit_I2CDevice 2.cpp:43: first defined here
/Users/ed/Library/Arduino15/packages/rp2040/tools/pqt-gcc/4.0.1-8ec9d6f/bin/../lib/gcc/arm-none-eabi/14.2.0/../../../../arm-none-eabi/bin/ld: /Users/ed/Library/Caches/arduino/sketches/D9B4422A4652A5E1A6AB7571B892BAF0/libraries/Adafruit_BusIO/Adafruit_I2CDevice.cpp.o: in function `_ZN18Adafruit_I2CDevice8detectedEv':
/Users/ed/Documents/Arduino/libraries/Adafruit_BusIO/Adafruit_I2CDevice.cpp:62: multiple definition of `_ZN18Adafruit_I2CDevice8detectedEv'; /Users/ed/Library/Caches/arduino/sketches/D9B4422A4652A5E1A6AB7571B892BAF0/libraries/Adafruit_BusIO/Adafruit_I2CDevice 2.cpp.o:/Users/ed/Documents/Arduino/libraries/Adafruit_BusIO/Adafruit_I2CDevice 2.cpp:62: first defined here
/Users/ed/Library/Arduino15/packages/rp2040/tools/pqt-gcc/4.0.1-8ec9d6f/bin/../lib/gcc/arm-none-eabi/14.2.0/../../../../arm-none-eabi/bin/ld: /Users/ed/Library/Caches/arduino/sketches/D9B4422A4652A5E1A6AB7571B892BAF0/libraries/Adafruit_BusIO/Adafruit_I2CDevice.cpp.o: in function `_ZN18Adafruit_I2CDevice5writeEPKhjbS1_j':
/Users/ed/Documents/Arduino/libraries/Adafruit_BusIO/Adafruit_I2CDevice.cpp:104: multiple definition of `_ZN18Adafruit_I2CDevice5writeEPKhjbS1_j'; /Users/ed/Library/Caches/arduino/sketches/D9B4422A4652A5E1A6AB7571B892BAF0/libraries/Adafruit_BusIO/Adafruit_I2CDevice 2.cpp.o:/Users/ed/Documents/Arduino/libraries/Adafruit_BusIO/Adafruit_I2CDevice 2.cpp:101: first defined here
/Users/ed/Library/Arduino15/packages/rp2040/tools/pqt-gcc/4.0.1-8ec9d6f/bin/../lib/gcc/arm-none-eabi/14.2.0/../../../../arm-none-eabi/bin/ld: /Users/ed/Library/Caches/arduino/sketches/D9B4422A4652A5E1A6AB7571B892BAF0/libraries/Adafruit_BusIO/Adafruit_I2CDevice.cpp.o: in function `_ZN18Adafruit_I2CDevice4readEPhjb':
/Users/ed/Documents/Arduino/libraries/Adafruit_BusIO/Adafruit_I2CDevice.cpp:185: multiple definition of `_ZN18Adafruit_I2CDevice4readEPhjb'; /Users/ed/Library/Caches/arduino/sketches/D9B4422A4652A5E1A6AB7571B892BAF0/libraries/Adafruit_BusIO/Adafruit_I2CDevice 2.cpp.o:/Users/ed/Documents/Arduino/libraries/Adafruit_BusIO/Adafruit_I2CDevice 2.cpp:182: first defined here
/Users/ed/Library/Arduino15/packages/rp2040/tools/pqt-gcc/4.0.1-8ec9d6f/bin/../lib/gcc/arm-none-eabi/14.2.0/../../../../arm-none-eabi/bin/ld: /Users/ed/Library/Caches/arduino/sketches/D9B4422A4652A5E1A6AB7571B892BAF0/libraries/Adafruit_BusIO/Adafruit_I2CDevice.cpp.o: in function `_ZN18Adafruit_I2CDevice5_readEPhjb':
/Users/ed/Documents/Arduino/libraries/Adafruit_BusIO/Adafruit_I2CDevice.cpp:196: multiple definition of `_ZN18Adafruit_I2CDevice5_readEPhjb'; /Users/ed/Library/Caches/arduino/sketches/D9B4422A4652A5E1A6AB7571B892BAF0/libraries/Adafruit_BusIO/Adafruit_I2CDevice 2.cpp.o:/Users/ed/Documents/Arduino/libraries/Adafruit_BusIO/Adafruit_I2CDevice 2.cpp:193: first defined here
/Users/ed/Library/Arduino15/packages/rp2040/tools/pqt-gcc/4.0.1-8ec9d6f/bin/../lib/gcc/arm-none-eabi/14.2.0/../../../../arm-none-eabi/bin/ld: /Users/ed/Library/Caches/arduino/sketches/D9B4422A4652A5E1A6AB7571B892BAF0/libraries/Adafruit_BusIO/Adafruit_I2CDevice.cpp.o: in function `_ZN18Adafruit_I2CDevice15write_then_readEPKhjPhjb':
/Users/ed/Documents/Arduino/libraries/Adafruit_BusIO/Adafruit_I2CDevice.cpp:249: multiple definition of `_ZN18Adafruit_I2CDevice15write_then_readEPKhjPhjb'; /Users/ed/Library/Caches/arduino/sketches/D9B4422A4652A5E1A6AB7571B892BAF0/libraries/Adafruit_BusIO/Adafruit_I2CDevice 2.cpp.o:/Users/ed/Documents/Arduino/libraries/Adafruit_BusIO/Adafruit_I2CDevice 2.cpp:246: first defined here
/Users/ed/Library/Arduino15/packages/rp2040/tools/pqt-gcc/4.0.1-8ec9d6f/bin/../lib/gcc/arm-none-eabi/14.2.0/../../../../arm-none-eabi/bin/ld: /Users/ed/Library/Caches/arduino/sketches/D9B4422A4652A5E1A6AB7571B892BAF0/libraries/Adafruit_BusIO/Adafruit_I2CDevice.cpp.o: in function `_ZN18Adafruit_I2CDevice7addressEv':
/Users/ed/Documents/Arduino/libraries/Adafruit_BusIO/Adafruit_I2CDevice.cpp:261: multiple definition of `_ZN18Adafruit_I2CDevice7addressEv'; /Users/ed/Library/Caches/arduino/sketches/D9B4422A4652A5E1A6AB7571B892BAF0/libraries/Adafruit_BusIO/Adafruit_I2CDevice 2.cpp.o:/Users/ed/Documents/Arduino/libraries/Adafruit_BusIO/Adafruit_I2CDevice 2.cpp:258: first defined here
/Users/ed/Library/Arduino15/packages/rp2040/tools/pqt-gcc/4.0.1-8ec9d6f/bin/../lib/gcc/arm-none-eabi/14.2.0/../../../../arm-none-eabi/bin/ld: /Users/ed/Library/Caches/arduino/sketches/D9B4422A4652A5E1A6AB7571B892BAF0/libraries/Adafruit_BusIO/Adafruit_I2CDevice.cpp.o: in function `_ZN18Adafruit_I2CDevice8setSpeedEm':
/Users/ed/Documents/Arduino/libraries/Adafruit_BusIO/Adafruit_I2CDevice.cpp:270: multiple definition of `_ZN18Adafruit_I2CDevice8setSpeedEm'; /Users/ed/Library/Caches/arduino/sketches/D9B4422A4652A5E1A6AB7571B892BAF0/libraries/Adafruit_BusIO/Adafruit_I2CDevice 2.cpp.o:/Users/ed/Documents/Arduino/libraries/Adafruit_BusIO/Adafruit_I2CDevice 2.cpp:267: first defined here
/Users/ed/Library/Arduino15/packages/rp2040/tools/pqt-gcc/4.0.1-8ec9d6f/bin/../lib/gcc/arm-none-eabi/14.2.0/../../../../arm-none-eabi/bin/ld: /Users/ed/Library/Caches/arduino/sketches/D9B4422A4652A5E1A6AB7571B892BAF0/libraries/Adafruit_BusIO/Adafruit_SPIDevice.cpp.o: in function `_ZN18Adafruit_SPIDeviceC2Eam8BitOrderhPN7arduino11HardwareSPIE':
/Users/ed/Documents/Arduino/libraries/Adafruit_BusIO/Adafruit_SPIDevice.cpp:14: multiple definition of `_ZN18Adafruit_SPIDeviceC2Eam8BitOrderhPN7arduino11HardwareSPIE'; /Users/ed/Library/Caches/arduino/sketches/D9B4422A4652A5E1A6AB7571B892BAF0/libraries/Adafruit_BusIO/Adafruit_SPIDevice 2.cpp.o:/Users/ed/Documents/Arduino/libraries/Adafruit_BusIO/Adafruit_SPIDevice 2.cpp:14: first defined here
/Users/ed/Library/Arduino15/packages/rp2040/tools/pqt-gcc/4.0.1-8ec9d6f/bin/../lib/gcc/arm-none-eabi/14.2.0/../../../../arm-none-eabi/bin/ld: /Users/ed/Library/Caches/arduino/sketches/D9B4422A4652A5E1A6AB7571B892BAF0/libraries/Adafruit_BusIO/Adafruit_SPIDevice.cpp.o: in function `_ZN18Adafruit_SPIDeviceC2Eam8BitOrderhPN7arduino11HardwareSPIE':
/Users/ed/Documents/Arduino/libraries/Adafruit_BusIO/Adafruit_SPIDevice.cpp:14: multiple definition of `_ZN18Adafruit_SPIDeviceC1Eam8BitOrderhPN7arduino11HardwareSPIE'; /Users/ed/Library/Caches/arduino/sketches/D9B4422A4652A5E1A6AB7571B892BAF0/libraries/Adafruit_BusIO/Adafruit_SPIDevice 2.cpp.o:/Users/ed/Documents/Arduino/libraries/Adafruit_BusIO/Adafruit_SPIDevice 2.cpp:14: first defined here
/Users/ed/Library/Arduino15/packages/rp2040/tools/pqt-gcc/4.0.1-8ec9d6f/bin/../lib/gcc/arm-none-eabi/14.2.0/../../../../arm-none-eabi/bin/ld: /Users/ed/Library/Caches/arduino/sketches/D9B4422A4652A5E1A6AB7571B892BAF0/libraries/Adafruit_BusIO/Adafruit_SPIDevice.cpp.o: in function `_ZN18Adafruit_SPIDeviceC2Eaaaam8BitOrderh':
/Users/ed/Documents/Arduino/libraries/Adafruit_BusIO/Adafruit_SPIDevice.cpp:49: multiple definition of `_ZN18Adafruit_SPIDeviceC2Eaaaam8BitOrderh'; /Users/ed/Library/Caches/arduino/sketches/D9B4422A4652A5E1A6AB7571B892BAF0/libraries/Adafruit_BusIO/Adafruit_SPIDevice 2.cpp.o:/Users/ed/Documents/Arduino/libraries/Adafruit_BusIO/Adafruit_SPIDevice 2.cpp:49: first defined here
/Users/ed/Library/Arduino15/packages/rp2040/tools/pqt-gcc/4.0.1-8ec9d6f/bin/../lib/gcc/arm-none-eabi/14.2.0/../../../../arm-none-eabi/bin/ld: /Users/ed/Library/Caches/arduino/sketches/D9B4422A4652A5E1A6AB7571B892BAF0/libraries/Adafruit_BusIO/Adafruit_SPIDevice.cpp.o: in function `_ZN18Adafruit_SPIDeviceC2Eaaaam8BitOrderh':
/Users/ed/Documents/Arduino/libraries/Adafruit_BusIO/Adafruit_SPIDevice.cpp:49: multiple definition of `_ZN18Adafruit_SPIDeviceC1Eaaaam8BitOrderh'; /Users/ed/Library/Caches/arduino/sketches/D9B4422A4652A5E1A6AB7571B892BAF0/libraries/Adafruit_BusIO/Adafruit_SPIDevice 2.cpp.o:/Users/ed/Documents/Arduino/libraries/Adafruit_BusIO/Adafruit_SPIDevice 2.cpp:49: first defined here
/Users/ed/Library/Arduino15/packages/rp2040/tools/pqt-gcc/4.0.1-8ec9d6f/bin/../lib/gcc/arm-none-eabi/14.2.0/../../../../arm-none-eabi/bin/ld: /Users/ed/Library/Caches/arduino/sketches/D9B4422A4652A5E1A6AB7571B892BAF0/libraries/Adafruit_BusIO/Adafruit_SPIDevice.cpp.o: in function `_ZN18Adafruit_SPIDeviceD2Ev':
/Users/ed/Documents/Arduino/libraries/Adafruit_BusIO/Adafruit_SPIDevice.cpp:82: multiple definition of `_ZN18Adafruit_SPIDeviceD2Ev'; /Users/ed/Library/Caches/arduino/sketches/D9B4422A4652A5E1A6AB7571B892BAF0/libraries/Adafruit_BusIO/Adafruit_SPIDevice 2.cpp.o:/Users/ed/Documents/Arduino/libraries/Adafruit_BusIO/Adafruit_SPIDevice 2.cpp:82: first defined here
/Users/ed/Library/Arduino15/packages/rp2040/tools/pqt-gcc/4.0.1-8ec9d6f/bin/../lib/gcc/arm-none-eabi/14.2.0/../../../../arm-none-eabi/bin/ld: /Users/ed/Library/Caches/arduino/sketches/D9B4422A4652A5E1A6AB7571B892BAF0/libraries/Adafruit_BusIO/Adafruit_SPIDevice.cpp.o: in function `_ZN18Adafruit_SPIDeviceD2Ev':
/Users/ed/Documents/Arduino/libraries/Adafruit_BusIO/Adafruit_SPIDevice.cpp:82: multiple definition of `_ZN18Adafruit_SPIDeviceD1Ev'; /Users/ed/Library/Caches/arduino/sketches/D9B4422A4652A5E1A6AB7571B892BAF0/libraries/Adafruit_BusIO/Adafruit_SPIDevice 2.cpp.o:/Users/ed/Documents/Arduino/libraries/Adafruit_BusIO/Adafruit_SPIDevice 2.cpp:82: first defined here
/Users/ed/Library/Arduino15/packages/rp2040/tools/pqt-gcc/4.0.1-8ec9d6f/bin/../lib/gcc/arm-none-eabi/14.2.0/../../../../arm-none-eabi/bin/ld: /Users/ed/Library/Caches/arduino/sketches/D9B4422A4652A5E1A6AB7571B892BAF0/libraries/Adafruit_BusIO/Adafruit_SPIDevice.cpp.o: in function `_ZN18Adafruit_SPIDevice5beginEv':
/Users/ed/Documents/Arduino/libraries/Adafruit_BusIO/Adafruit_SPIDevice.cpp:92: multiple definition of `_ZN18Adafruit_SPIDevice5beginEv'; /Users/ed/Library/Caches/arduino/sketches/D9B4422A4652A5E1A6AB7571B892BAF0/libraries/Adafruit_BusIO/Adafruit_SPIDevice 2.cpp.o:/Users/ed/Documents/Arduino/libraries/Adafruit_BusIO/Adafruit_SPIDevice 2.cpp:92: first defined here
/Users/ed/Library/Arduino15/packages/rp2040/tools/pqt-gcc/4.0.1-8ec9d6f/bin/../lib/gcc/arm-none-eabi/14.2.0/../../../../arm-none-eabi/bin/ld: /Users/ed/Library/Caches/arduino/sketches/D9B4422A4652A5E1A6AB7571B892BAF0/libraries/Adafruit_BusIO/Adafruit_SPIDevice.cpp.o: in function `_ZN18Adafruit_SPIDevice8transferEPhj':
/Users/ed/Documents/Arduino/libraries/Adafruit_BusIO/Adafruit_SPIDevice.cpp:135: multiple definition of `_ZN18Adafruit_SPIDevice8transferEPhj'; /Users/ed/Library/Caches/arduino/sketches/D9B4422A4652A5E1A6AB7571B892BAF0/libraries/Adafruit_BusIO/Adafruit_SPIDevice 2.cpp.o:/Users/ed/Documents/Arduino/libraries/Adafruit_BusIO/Adafruit_SPIDevice 2.cpp:135: first defined here
/Users/ed/Library/Arduino15/packages/rp2040/tools/pqt-gcc/4.0.1-8ec9d6f/bin/../lib/gcc/arm-none-eabi/14.2.0/../../../../arm-none-eabi/bin/ld: /Users/ed/Library/Caches/arduino/sketches/D9B4422A4652A5E1A6AB7571B892BAF0/libraries/Adafruit_BusIO/Adafruit_SPIDevice.cpp.o: in function `_ZN18Adafruit_SPIDevice8transferEh':
/Users/ed/Documents/Arduino/libraries/Adafruit_BusIO/Adafruit_SPIDevice.cpp:273: multiple definition of `_ZN18Adafruit_SPIDevice8transferEh'; /Users/ed/Library/Caches/arduino/sketches/D9B4422A4652A5E1A6AB7571B892BAF0/libraries/Adafruit_BusIO/Adafruit_SPIDevice 2.cpp.o:/Users/ed/Documents/Arduino/libraries/Adafruit_BusIO/Adafruit_SPIDevice 2.cpp:273: first defined here
/Users/ed/Library/Arduino15/packages/rp2040/tools/pqt-gcc/4.0.1-8ec9d6f/bin/../lib/gcc/arm-none-eabi/14.2.0/../../../../arm-none-eabi/bin/ld: /Users/ed/Library/Caches/arduino/sketches/D9B4422A4652A5E1A6AB7571B892BAF0/libraries/Adafruit_BusIO/Adafruit_SPIDevice.cpp.o: in function `_ZN18Adafruit_SPIDevice16beginTransactionEv':
/Users/ed/Documents/Arduino/libraries/Adafruit_BusIO/Adafruit_SPIDevice.cpp:283: multiple definition of `_ZN18Adafruit_SPIDevice16beginTransactionEv'; /Users/ed/Library/Caches/arduino/sketches/D9B4422A4652A5E1A6AB7571B892BAF0/libraries/Adafruit_BusIO/Adafruit_SPIDevice 2.cpp.o:/Users/ed/Documents/Arduino/libraries/Adafruit_BusIO/Adafruit_SPIDevice 2.cpp:283: first defined here
/Users/ed/Library/Arduino15/packages/rp2040/tools/pqt-gcc/4.0.1-8ec9d6f/bin/../lib/gcc/arm-none-eabi/14.2.0/../../../../arm-none-eabi/bin/ld: /Users/ed/Library/Caches/arduino/sketches/D9B4422A4652A5E1A6AB7571B892BAF0/libraries/Adafruit_BusIO/Adafruit_SPIDevice.cpp.o: in function `_ZN18Adafruit_SPIDevice14endTransactionEv':
/Users/ed/Documents/Arduino/libraries/Adafruit_BusIO/Adafruit_SPIDevice.cpp:295: multiple definition of `_ZN18Adafruit_SPIDevice14endTransactionEv'; /Users/ed/Library/Caches/arduino/sketches/D9B4422A4652A5E1A6AB7571B892BAF0/libraries/Adafruit_BusIO/Adafruit_SPIDevice 2.cpp.o:/Users/ed/Documents/Arduino/libraries/Adafruit_BusIO/Adafruit_SPIDevice 2.cpp:295: first defined here
/Users/ed/Library/Arduino15/packages/rp2040/tools/pqt-gcc/4.0.1-8ec9d6f/bin/../lib/gcc/arm-none-eabi/14.2.0/../../../../arm-none-eabi/bin/ld: /Users/ed/Library/Caches/arduino/sketches/D9B4422A4652A5E1A6AB7571B892BAF0/libraries/Adafruit_BusIO/Adafruit_SPIDevice.cpp.o: in function `_ZN18Adafruit_SPIDevice13setChipSelectEi':
/Users/ed/Documents/Arduino/libraries/Adafruit_BusIO/Adafruit_SPIDevice.cpp:307: multiple definition of `_ZN18Adafruit_SPIDevice13setChipSelectEi'; /Users/ed/Library/Caches/arduino/sketches/D9B4422A4652A5E1A6AB7571B892BAF0/libraries/Adafruit_BusIO/Adafruit_SPIDevice 2.cpp.o:/Users/ed/Documents/Arduino/libraries/Adafruit_BusIO/Adafruit_SPIDevice 2.cpp:307: first defined here
/Users/ed/Library/Arduino15/packages/rp2040/tools/pqt-gcc/4.0.1-8ec9d6f/bin/../lib/gcc/arm-none-eabi/14.2.0/../../../../arm-none-eabi/bin/ld: /Users/ed/Library/Caches/arduino/sketches/D9B4422A4652A5E1A6AB7571B892BAF0/libraries/Adafruit_BusIO/Adafruit_SPIDevice.cpp.o: in function `_ZN18Adafruit_SPIDevice31beginTransactionWithAssertingCSEv':
/Users/ed/Documents/Arduino/libraries/Adafruit_BusIO/Adafruit_SPIDevice.cpp:318: multiple definition of `_ZN18Adafruit_SPIDevice31beginTransactionWithAssertingCSEv'; /Users/ed/Library/Caches/arduino/sketches/D9B4422A4652A5E1A6AB7571B892BAF0/libraries/Adafruit_BusIO/Adafruit_SPIDevice 2.cpp.o:/Users/ed/Documents/Arduino/libraries/Adafruit_BusIO/Adafruit_SPIDevice 2.cpp:318: first defined here
/Users/ed/Library/Arduino15/packages/rp2040/tools/pqt-gcc/4.0.1-8ec9d6f/bin/../lib/gcc/arm-none-eabi/14.2.0/../../../../arm-none-eabi/bin/ld: /Users/ed/Library/Caches/arduino/sketches/D9B4422A4652A5E1A6AB7571B892BAF0/libraries/Adafruit_BusIO/Adafruit_SPIDevice.cpp.o: in function `_ZN18Adafruit_SPIDevice31endTransactionWithDeassertingCSEv':
/Users/ed/Documents/Arduino/libraries/Adafruit_BusIO/Adafruit_SPIDevice.cpp:327: multiple definition of `_ZN18Adafruit_SPIDevice31endTransactionWithDeassertingCSEv'; /Users/ed/Library/Caches/arduino/sketches/D9B4422A4652A5E1A6AB7571B892BAF0/libraries/Adafruit_BusIO/Adafruit_SPIDevice 2.cpp.o:/Users/ed/Documents/Arduino/libraries/Adafruit_BusIO/Adafruit_SPIDevice 2.cpp:327: first defined here
/Users/ed/Library/Arduino15/packages/rp2040/tools/pqt-gcc/4.0.1-8ec9d6f/bin/../lib/gcc/arm-none-eabi/14.2.0/../../../../arm-none-eabi/bin/ld: /Users/ed/Library/Caches/arduino/sketches/D9B4422A4652A5E1A6AB7571B892BAF0/libraries/Adafruit_BusIO/Adafruit_SPIDevice.cpp.o: in function `_ZN18Adafruit_SPIDevice5writeEPKhjS1_j':
/Users/ed/Documents/Arduino/libraries/Adafruit_BusIO/Adafruit_SPIDevice.cpp:345: multiple definition of `_ZN18Adafruit_SPIDevice5writeEPKhjS1_j'; /Users/ed/Library/Caches/arduino/sketches/D9B4422A4652A5E1A6AB7571B892BAF0/libraries/Adafruit_BusIO/Adafruit_SPIDevice 2.cpp.o:/Users/ed/Documents/Arduino/libraries/Adafruit_BusIO/Adafruit_SPIDevice 2.cpp:345: first defined here
/Users/ed/Library/Arduino15/packages/rp2040/tools/pqt-gcc/4.0.1-8ec9d6f/bin/../lib/gcc/arm-none-eabi/14.2.0/../../../../arm-none-eabi/bin/ld: /Users/ed/Library/Caches/arduino/sketches/D9B4422A4652A5E1A6AB7571B892BAF0/libraries/Adafruit_BusIO/Adafruit_SPIDevice.cpp.o: in function `_ZN18Adafruit_SPIDevice4readEPhjh':
/Users/ed/Documents/Arduino/libraries/Adafruit_BusIO/Adafruit_SPIDevice.cpp:402: multiple definition of `_ZN18Adafruit_SPIDevice4readEPhjh'; /Users/ed/Library/Caches/arduino/sketches/D9B4422A4652A5E1A6AB7571B892BAF0/libraries/Adafruit_BusIO/Adafruit_SPIDevice 2.cpp.o:/Users/ed/Documents/Arduino/libraries/Adafruit_BusIO/Adafruit_SPIDevice 2.cpp:402: first defined here
/Users/ed/Library/Arduino15/packages/rp2040/tools/pqt-gcc/4.0.1-8ec9d6f/bin/../lib/gcc/arm-none-eabi/14.2.0/../../../../arm-none-eabi/bin/ld: /Users/ed/Library/Caches/arduino/sketches/D9B4422A4652A5E1A6AB7571B892BAF0/libraries/Adafruit_BusIO/Adafruit_SPIDevice.cpp.o: in function `_ZN18Adafruit_SPIDevice15write_then_readEPKhjPhjh':
/Users/ed/Documents/Arduino/libraries/Adafruit_BusIO/Adafruit_SPIDevice.cpp:440: multiple definition of `_ZN18Adafruit_SPIDevice15write_then_readEPKhjPhjh'; /Users/ed/Library/Caches/arduino/sketches/D9B4422A4652A5E1A6AB7571B892BAF0/libraries/Adafruit_BusIO/Adafruit_SPIDevice 2.cpp.o:/Users/ed/Documents/Arduino/libraries/Adafruit_BusIO/Adafruit_SPIDevice 2.cpp:440: first defined here
/Users/ed/Library/Arduino15/packages/rp2040/tools/pqt-gcc/4.0.1-8ec9d6f/bin/../lib/gcc/arm-none-eabi/14.2.0/../../../../arm-none-eabi/bin/ld: /Users/ed/Library/Caches/arduino/sketches/D9B4422A4652A5E1A6AB7571B892BAF0/libraries/Adafruit_BusIO/Adafruit_SPIDevice.cpp.o: in function `_ZN18Adafruit_SPIDevice14write_and_readEPhj':
/Users/ed/Documents/Arduino/libraries/Adafruit_BusIO/Adafruit_SPIDevice.cpp:502: multiple definition of `_ZN18Adafruit_SPIDevice14write_and_readEPhj'; /Users/ed/Library/Caches/arduino/sketches/D9B4422A4652A5E1A6AB7571B892BAF0/libraries/Adafruit_BusIO/Adafruit_SPIDevice 2.cpp.o:/Users/ed/Documents/Arduino/libraries/Adafruit_BusIO/Adafruit_SPIDevice 2.cpp:502: first defined here
collect2: error: ld returned 1 exit status
Multiple libraries were found for "SdFat.h"
  Used: /Users/ed/Library/Arduino15/packages/rp2040/hardware/rp2040/4.4.2/libraries/SdFat
  Not used: /Users/ed/Documents/Arduino/libraries/SdFat_-_Adafruit_Fork
Using library Adafruit Floppy at version 0.3.0 in folder: /Users/ed/Documents/Arduino/libraries/Adafruit_Floppy 
Using library Adafruit BusIO at version 1.17.0 in folder: /Users/ed/Documents/Arduino/libraries/Adafruit_BusIO 
Using library SPI at version 1.0 in folder: /Users/ed/Library/Arduino15/packages/rp2040/hardware/rp2040/4.4.2/libraries/SPI 
Using library SdFat at version 2.3.0 in folder: /Users/ed/Library/Arduino15/packages/rp2040/hardware/rp2040/4.4.2/libraries/SdFat 
Using library Wire at version 1.0 in folder: /Users/ed/Library/Arduino15/packages/rp2040/hardware/rp2040/4.4.2/libraries/Wire 
Using library Adafruit TinyUSB Library at version 3.4.2 in folder: /Users/ed/Library/Arduino15/packages/rp2040/hardware/rp2040/4.4.2/libraries/Adafruit_TinyUSB_Arduino 
exit status 1

Compilation error: exit status 1

The mentioned SdFat_-_Adafruit_Fork seems suspicious, but as I recall, that as installed by the IDE when I originally installed the library from the Library Manager. It mentioned it as a required library and installed it. It looks to come from https://github.com/adafruit/SdFat.git

@eparadis
Copy link
Author

I finally noticed that those file names in the BusIO library sure looked suspicious. Why all the "whatever 2.cpp" ? So I

  1. Deleted that directory in my libraries folder (just to make sure)
  2. Uninstalled the "Adafruit BusIO" library from the IDE Library Manager
  3. Re-Installed the "Adafruit BusIO" library (v1.17.0) from the IDE Library Manager

And now it compiles. 🤷

I have no idea how I ended up with two over-layed copies of that library. I wonder if it has something to do with iCloud syncing my Documents folder? I recently added a new computer to my iCloud account that runs a different version of MacOS and perhaps it got confused somewhere as I switched working on this project in two different places.

Thanks for your assistance, and I look forward to digging into the code.

@jepler
Copy link
Member

jepler commented Jan 23, 2025

[your message came in while I was writing this, I'll go ahead and post it]

This message seems to be saying that the two definitions each duplicate symbol come from a file called Users/ed/Documents/Arduino/libraries/Adafruit_BusIO/Adafruit_SPIDevice.cpp and one called /Users/ed/Documents/Arduino/libraries/Adafruit_BusIO/Adafruit_SPIDevice 2.cpp

I didn't check but I really doubt that Adafruit_BusIO has a file named Adafruit_SPIDevice 2.cpp.

Please make sure you can compile a busio SPIDevice example.

@jepler
Copy link
Member

jepler commented Jan 23, 2025

I'm glad you got a successful build now!

@jepler jepler closed this as completed Jan 23, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants