madhephaestus / ESP32Servo

Arduino-compatible servo library for the ESP32
133 stars 53 forks source link

Compilation error using 1.1.1 in Arduino IDE 2.2.1 on DOIT DEVKIT v1 #44

Closed edrobertsrayne closed 8 months ago

edrobertsrayne commented 8 months ago

I'd just tried to add the library to my current project but it gives me a compilation error.

/Users/ed/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-2021r2-patch5-8.4.0/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/bin/ld: /private/var/folders/lj/j59j68zj02d1c9t02zkqsxr40000gn/T/arduino/sketches/F9003948BAB8F9EE99F02A36881B09BE/libraries/ESP32Servo/ESP32PWM.cpp.o:(.bss._ZN8ESP32PWM23explicateAllocationModeE+0x0): multiple definition ofESP32PWM::explicateAllocationMode'; /private/var/folders/lj/j59j68zj02d1c9t02zkqsxr40000gn/T/arduino/sketches/F9003948BAB8F9EE99F02A36881B09BE/libraries/ESP32Servo/ESP32PWM 2.cpp.o:(.bss._ZN8ESP32PWM23explicateAllocationModeE+0x0): first defined here /Users/ed/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-2021r2-patch5-8.4.0/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/bin/ld: /private/var/folders/lj/j59j68zj02d1c9t02zkqsxr40000gn/T/arduino/sketches/F9003948BAB8F9EE99F02A36881B09BE/libraries/ESP32Servo/ESP32PWM.cpp.o:(.bss._ZN8ESP32PWM10timerCountE+0x0): multiple definition of ESP32PWM::timerCount'; /private/var/folders/lj/j59j68zj02d1c9t02zkqsxr40000gn/T/arduino/sketches/F9003948BAB8F9EE99F02A36881B09BE/libraries/ESP32Servo/ESP32PWM 2.cpp.o:(.bss._ZN8ESP32PWM10timerCountE+0x0): first defined here /Users/ed/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-2021r2-patch5-8.4.0/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/bin/ld: /private/var/folders/lj/j59j68zj02d1c9t02zkqsxr40000gn/T/arduino/sketches/F9003948BAB8F9EE99F02A36881B09BE/libraries/ESP32Servo/ESP32PWM.cpp.o: in functionESP32PWM::allocateTimer(int)': /Users/ed/Documents/Arduino/libraries/ESP32Servo/src/ESP32PWM.cpp:25: multiple definition of ESP32PWM::allocateTimer(int)'; /private/var/folders/lj/j59j68zj02d1c9t02zkqsxr40000gn/T/arduino/sketches/F9003948BAB8F9EE99F02A36881B09BE/libraries/ESP32Servo/ESP32PWM 2.cpp.o:/Users/ed/Documents/Arduino/libraries/ESP32Servo/src/ESP32PWM 2.cpp:25: first defined here /Users/ed/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-2021r2-patch5-8.4.0/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/bin/ld: /private/var/folders/lj/j59j68zj02d1c9t02zkqsxr40000gn/T/arduino/sketches/F9003948BAB8F9EE99F02A36881B09BE/libraries/ESP32Servo/ESP32PWM.cpp.o:(.data._ZN8ESP32PWM8PWMCountE+0x0): multiple definition ofESP32PWM::PWMCount'; /private/var/folders/lj/j59j68zj02d1c9t02zkqsxr40000gn/T/arduino/sketches/F9003948BAB8F9EE99F02A36881B09BE/libraries/ESP32Servo/ESP32PWM 2.cpp.o:(.data._ZN8ESP32PWM8PWMCountE+0x0): first defined here /Users/ed/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-2021r2-patch5-8.4.0/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/bin/ld: /private/var/folders/lj/j59j68zj02d1c9t02zkqsxr40000gn/T/arduino/sketches/F9003948BAB8F9EE99F02A36881B09BE/libraries/ESP32Servo/ESP32PWM.cpp.o:(.bss._ZN8ESP32PWM11ChannelUsedE+0x0): multiple definition of ESP32PWM::ChannelUsed'; /private/var/folders/lj/j59j68zj02d1c9t02zkqsxr40000gn/T/arduino/sketches/F9003948BAB8F9EE99F02A36881B09BE/libraries/ESP32Servo/ESP32PWM 2.cpp.o:(.bss._ZN8ESP32PWM11ChannelUsedE+0x0): first defined here /Users/ed/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-2021r2-patch5-8.4.0/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/bin/ld: /private/var/folders/lj/j59j68zj02d1c9t02zkqsxr40000gn/T/arduino/sketches/F9003948BAB8F9EE99F02A36881B09BE/libraries/ESP32Servo/ESP32PWM.cpp.o: in functionESP32PWM::ESP32PWM()': /Users/ed/Documents/Arduino/libraries/ESP32Servo/src/ESP32PWM.cpp:36: multiple definition of ESP32PWM::ESP32PWM()'; /private/var/folders/lj/j59j68zj02d1c9t02zkqsxr40000gn/T/arduino/sketches/F9003948BAB8F9EE99F02A36881B09BE/libraries/ESP32Servo/ESP32PWM 2.cpp.o:/Users/ed/Documents/Arduino/libraries/ESP32Servo/src/ESP32PWM 2.cpp:36: first defined here /Users/ed/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-2021r2-patch5-8.4.0/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/bin/ld: /private/var/folders/lj/j59j68zj02d1c9t02zkqsxr40000gn/T/arduino/sketches/F9003948BAB8F9EE99F02A36881B09BE/libraries/ESP32Servo/ESP32PWM.cpp.o: in functionESP32PWM::ESP32PWM()': /Users/ed/Documents/Arduino/libraries/ESP32Servo/src/ESP32PWM.cpp:36: multiple definition of ESP32PWM::ESP32PWM()'; /private/var/folders/lj/j59j68zj02d1c9t02zkqsxr40000gn/T/arduino/sketches/F9003948BAB8F9EE99F02A36881B09BE/libraries/ESP32Servo/ESP32PWM 2.cpp.o:/Users/ed/Documents/Arduino/libraries/ESP32Servo/src/ESP32PWM 2.cpp:36: first defined here /Users/ed/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-2021r2-patch5-8.4.0/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/bin/ld: /private/var/folders/lj/j59j68zj02d1c9t02zkqsxr40000gn/T/arduino/sketches/F9003948BAB8F9EE99F02A36881B09BE/libraries/ESP32Servo/ESP32PWM.cpp.o: in functionESP32PWM::_ledcSetupTimerFreq(unsigned char, double, unsigned char)': /Users/ed/Documents/Arduino/libraries/ESP32Servo/src/ESP32PWM.cpp:56: multiple definition of ESP32PWM::_ledcSetupTimerFreq(unsigned char, double, unsigned char)'; /private/var/folders/lj/j59j68zj02d1c9t02zkqsxr40000gn/T/arduino/sketches/F9003948BAB8F9EE99F02A36881B09BE/libraries/ESP32Servo/ESP32PWM 2.cpp.o:/Users/ed/Documents/Arduino/libraries/ESP32Servo/src/ESP32PWM 2.cpp:56: first defined here /Users/ed/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-2021r2-patch5-8.4.0/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/bin/ld: /private/var/folders/lj/j59j68zj02d1c9t02zkqsxr40000gn/T/arduino/sketches/F9003948BAB8F9EE99F02A36881B09BE/libraries/ESP32Servo/ESP32PWM.cpp.o: in functionESP32PWM::timerAndIndexToChannel(int, int)': /Users/ed/Documents/Arduino/libraries/ESP32Servo/src/ESP32PWM.cpp:61: multiple definition of ESP32PWM::timerAndIndexToChannel(int, int)'; /private/var/folders/lj/j59j68zj02d1c9t02zkqsxr40000gn/T/arduino/sketches/F9003948BAB8F9EE99F02A36881B09BE/libraries/ESP32Servo/ESP32PWM 2.cpp.o:/Users/ed/Documents/Arduino/libraries/ESP32Servo/src/ESP32PWM 2.cpp:61: first defined here /Users/ed/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-2021r2-patch5-8.4.0/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/bin/ld: /private/var/folders/lj/j59j68zj02d1c9t02zkqsxr40000gn/T/arduino/sketches/F9003948BAB8F9EE99F02A36881B09BE/libraries/ESP32Servo/ESP32PWM.cpp.o:(.data._ZN8ESP32PWM12timerFreqSetE+0x0): multiple definition ofESP32PWM::timerFreqSet'; /private/var/folders/lj/j59j68zj02d1c9t02zkqsxr40000gn/T/arduino/sketches/F9003948BAB8F9EE99F02A36881B09BE/libraries/ESP32Servo/ESP32PWM 2.cpp.o:(.data._ZN8ESP32PWM12timerFreqSetE+0x0): first defined here /Users/ed/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-2021r2-patch5-8.4.0/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/bin/ld: /private/var/folders/lj/j59j68zj02d1c9t02zkqsxr40000gn/T/arduino/sketches/F9003948BAB8F9EE99F02A36881B09BE/libraries/ESP32Servo/ESP32PWM.cpp.o: in function ESP32PWM::allocatenext(double)': /Users/ed/Documents/Arduino/libraries/ESP32Servo/src/ESP32PWM.cpp:73: multiple definition ofESP32PWM::allocatenext(double)'; /private/var/folders/lj/j59j68zj02d1c9t02zkqsxr40000gn/T/arduino/sketches/F9003948BAB8F9EE99F02A36881B09BE/libraries/ESP32Servo/ESP32PWM 2.cpp.o:/Users/ed/Documents/Arduino/libraries/ESP32Servo/src/ESP32PWM 2.cpp:73: first defined here /Users/ed/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-2021r2-patch5-8.4.0/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/bin/ld: /private/var/folders/lj/j59j68zj02d1c9t02zkqsxr40000gn/T/arduino/sketches/F9003948BAB8F9EE99F02A36881B09BE/libraries/ESP32Servo/ESP32PWM.cpp.o: in function ESP32PWM::deallocate()': /Users/ed/Documents/Arduino/libraries/ESP32Servo/src/ESP32PWM.cpp:120: multiple definition ofESP32PWM::deallocate()'; /private/var/folders/lj/j59j68zj02d1c9t02zkqsxr40000gn/T/arduino/sketches/F9003948BAB8F9EE99F02A36881B09BE/libraries/ESP32Servo/ESP32PWM 2.cpp.o:/Users/ed/Documents/Arduino/libraries/ESP32Servo/src/ESP32PWM 2.cpp:120: first defined here /Users/ed/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-2021r2-patch5-8.4.0/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/bin/ld: /private/var/folders/lj/j59j68zj02d1c9t02zkqsxr40000gn/T/arduino/sketches/F9003948BAB8F9EE99F02A36881B09BE/libraries/ESP32Servo/ESP32PWM.cpp.o: in function ESP32PWM::~ESP32PWM()': /Users/ed/Documents/Arduino/libraries/ESP32Servo/src/ESP32PWM.cpp:48: multiple definition ofESP32PWM::~ESP32PWM()'; /private/var/folders/lj/j59j68zj02d1c9t02zkqsxr40000gn/T/arduino/sketches/F9003948BAB8F9EE99F02A36881B09BE/libraries/ESP32Servo/ESP32PWM 2.cpp.o:/Users/ed/Documents/Arduino/libraries/ESP32Servo/src/ESP32PWM 2.cpp:48: first defined here /Users/ed/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-2021r2-patch5-8.4.0/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/bin/ld: /private/var/folders/lj/j59j68zj02d1c9t02zkqsxr40000gn/T/arduino/sketches/F9003948BAB8F9EE99F02A36881B09BE/libraries/ESP32Servo/ESP32PWM.cpp.o: in function ESP32PWM::~ESP32PWM()': /Users/ed/Documents/Arduino/libraries/ESP32Servo/src/ESP32PWM.cpp:48: multiple definition ofESP32PWM::~ESP32PWM()'; /private/var/folders/lj/j59j68zj02d1c9t02zkqsxr40000gn/T/arduino/sketches/F9003948BAB8F9EE99F02A36881B09BE/libraries/ESP32Servo/ESP32PWM 2.cpp.o:/Users/ed/Documents/Arduino/libraries/ESP32Servo/src/ESP32PWM 2.cpp:48: first defined here /Users/ed/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-2021r2-patch5-8.4.0/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/bin/ld: /private/var/folders/lj/j59j68zj02d1c9t02zkqsxr40000gn/T/arduino/sketches/F9003948BAB8F9EE99F02A36881B09BE/libraries/ESP32Servo/ESP32PWM.cpp.o: in function ESP32PWM::~ESP32PWM()': /Users/ed/Documents/Arduino/libraries/ESP32Servo/src/ESP32PWM.cpp:48: multiple definition ofESP32PWM::~ESP32PWM()'; /private/var/folders/lj/j59j68zj02d1c9t02zkqsxr40000gn/T/arduino/sketches/F9003948BAB8F9EE99F02A36881B09BE/libraries/ESP32Servo/ESP32PWM 2.cpp.o:/Users/ed/Documents/Arduino/libraries/ESP32Servo/src/ESP32PWM 2.cpp:48: first defined here /Users/ed/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-2021r2-patch5-8.4.0/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/bin/ld: /private/var/folders/lj/j59j68zj02d1c9t02zkqsxr40000gn/T/arduino/sketches/F9003948BAB8F9EE99F02A36881B09BE/libraries/ESP32Servo/ESP32PWM.cpp.o: in function ESP32PWM::getChannel()': /Users/ed/Documents/Arduino/libraries/ESP32Servo/src/ESP32PWM.cpp:136: multiple definition ofESP32PWM::getChannel()'; /private/var/folders/lj/j59j68zj02d1c9t02zkqsxr40000gn/T/arduino/sketches/F9003948BAB8F9EE99F02A36881B09BE/libraries/ESP32Servo/ESP32PWM 2.cpp.o:/Users/ed/Documents/Arduino/libraries/ESP32Servo/src/ESP32PWM 2.cpp:136: first defined here /Users/ed/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-2021r2-patch5-8.4.0/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/bin/ld: /private/var/folders/lj/j59j68zj02d1c9t02zkqsxr40000gn/T/arduino/sketches/F9003948BAB8F9EE99F02A36881B09BE/libraries/ESP32Servo/ESP32PWM.cpp.o: in function ESP32PWM::getDutyScaled()': /Users/ed/Documents/Arduino/libraries/ESP32Servo/src/ESP32PWM.cpp:155: multiple definition ofESP32PWM::getDutyScaled()'; /private/var/folders/lj/j59j68zj02d1c9t02zkqsxr40000gn/T/arduino/sketches/F9003948BAB8F9EE99F02A36881B09BE/libraries/ESP32Servo/ESP32PWM 2.cpp.o:/Users/ed/Documents/Arduino/libraries/ESP32Servo/src/ESP32PWM 2.cpp:155: first defined here /Users/ed/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-2021r2-patch5-8.4.0/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/bin/ld: /private/var/folders/lj/j59j68zj02d1c9t02zkqsxr40000gn/T/arduino/sketches/F9003948BAB8F9EE99F02A36881B09BE/libraries/ESP32Servo/ESP32PWM.cpp.o: in function ESP32PWM::write(unsigned int)': /Users/ed/Documents/Arduino/libraries/ESP32Servo/src/ESP32PWM.cpp:162: multiple definition ofESP32PWM::write(unsigned int)'; /private/var/folders/lj/j59j68zj02d1c9t02zkqsxr40000gn/T/arduino/sketches/F9003948BAB8F9EE99F02A36881B09BE/libraries/ESP32Servo/ESP32PWM 2.cpp.o:/Users/ed/Documents/Arduino/libraries/ESP32Servo/src/ESP32PWM 2.cpp:162: first defined here /Users/ed/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-2021r2-patch5-8.4.0/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/bin/ld: /private/var/folders/lj/j59j68zj02d1c9t02zkqsxr40000gn/T/arduino/sketches/F9003948BAB8F9EE99F02A36881B09BE/libraries/ESP32Servo/ESP32PWM.cpp.o: in function ESP32PWM::writeScaled(double)': /Users/ed/Documents/Arduino/libraries/ESP32Servo/src/ESP32PWM.cpp:159: multiple definition ofESP32PWM::writeScaled(double)'; /private/var/folders/lj/j59j68zj02d1c9t02zkqsxr40000gn/T/arduino/sketches/F9003948BAB8F9EE99F02A36881B09BE/libraries/ESP32Servo/ESP32PWM 2.cpp.o:/Users/ed/Documents/Arduino/libraries/ESP32Servo/src/ESP32PWM 2.cpp:159: first defined here /Users/ed/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-2021r2-patch5-8.4.0/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/bin/ld: /private/var/folders/lj/j59j68zj02d1c9t02zkqsxr40000gn/T/arduino/sketches/F9003948BAB8F9EE99F02A36881B09BE/libraries/ESP32Servo/ESP32PWM.cpp.o: in function ESP32PWM::adjustFrequencyLocal(double, double)': /Users/ed/Documents/Arduino/libraries/ESP32Servo/src/ESP32PWM.cpp:166: multiple definition ofESP32PWM::adjustFrequencyLocal(double, double)'; /private/var/folders/lj/j59j68zj02d1c9t02zkqsxr40000gn/T/arduino/sketches/F9003948BAB8F9EE99F02A36881B09BE/libraries/ESP32Servo/ESP32PWM 2.cpp.o:/Users/ed/Documents/Arduino/libraries/ESP32Servo/src/ESP32PWM 2.cpp:166: first defined here /Users/ed/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-2021r2-patch5-8.4.0/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/bin/ld: /private/var/folders/lj/j59j68zj02d1c9t02zkqsxr40000gn/T/arduino/sketches/F9003948BAB8F9EE99F02A36881B09BE/libraries/ESP32Servo/ESP32PWM.cpp.o: in function ESP32PWM::adjustFrequency(double, double)': /Users/ed/Documents/Arduino/libraries/ESP32Servo/src/ESP32PWM.cpp:180: multiple definition ofESP32PWM::adjustFrequency(double, double)'; /private/var/folders/lj/j59j68zj02d1c9t02zkqsxr40000gn/T/arduino/sketches/F9003948BAB8F9EE99F02A36881B09BE/libraries/ESP32Servo/ESP32PWM 2.cpp.o:/Users/ed/Documents/Arduino/libraries/ESP32Servo/src/ESP32PWM 2.cpp:180: first defined here /Users/ed/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-2021r2-patch5-8.4.0/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/bin/ld: /private/var/folders/lj/j59j68zj02d1c9t02zkqsxr40000gn/T/arduino/sketches/F9003948BAB8F9EE99F02A36881B09BE/libraries/ESP32Servo/ESP32PWM.cpp.o: in function ESP32PWM::writeTone(double)': /Users/ed/Documents/Arduino/libraries/ESP32Servo/src/ESP32PWM.cpp:194: multiple definition ofESP32PWM::writeTone(double)'; /private/var/folders/lj/j59j68zj02d1c9t02zkqsxr40000gn/T/arduino/sketches/F9003948BAB8F9EE99F02A36881B09BE/libraries/ESP32Servo/ESP32PWM 2.cpp.o:/Users/ed/Documents/Arduino/libraries/ESP32Servo/src/ESP32PWM 2.cpp:194: first defined here /Users/ed/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-2021r2-patch5-8.4.0/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/bin/ld: /private/var/folders/lj/j59j68zj02d1c9t02zkqsxr40000gn/T/arduino/sketches/F9003948BAB8F9EE99F02A36881B09BE/libraries/ESP32Servo/ESP32PWM.cpp.o: in function ESP32PWM::writeNote(note_t, unsigned char)': /Users/ed/Documents/Arduino/libraries/ESP32Servo/src/ESP32PWM.cpp:208: multiple definition ofESP32PWM::writeNote(note_t, unsigned char)'; /private/var/folders/lj/j59j68zj02d1c9t02zkqsxr40000gn/T/arduino/sketches/F9003948BAB8F9EE99F02A36881B09BE/libraries/ESP32Servo/ESP32PWM 2.cpp.o:/Users/ed/Documents/Arduino/libraries/ESP32Servo/src/ESP32PWM 2.cpp:208: first defined here /Users/ed/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-2021r2-patch5-8.4.0/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/bin/ld: /private/var/folders/lj/j59j68zj02d1c9t02zkqsxr40000gn/T/arduino/sketches/F9003948BAB8F9EE99F02A36881B09BE/libraries/ESP32Servo/ESP32PWM.cpp.o: in function ESP32PWM::read()': /Users/ed/Documents/Arduino/libraries/ESP32Servo/src/ESP32PWM.cpp:221: multiple definition ofESP32PWM::read()'; /private/var/folders/lj/j59j68zj02d1c9t02zkqsxr40000gn/T/arduino/sketches/F9003948BAB8F9EE99F02A36881B09BE/libraries/ESP32Servo/ESP32PWM 2.cpp.o:/Users/ed/Documents/Arduino/libraries/ESP32Servo/src/ESP32PWM 2.cpp:221: first defined here /Users/ed/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-2021r2-patch5-8.4.0/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/bin/ld: /private/var/folders/lj/j59j68zj02d1c9t02zkqsxr40000gn/T/arduino/sketches/F9003948BAB8F9EE99F02A36881B09BE/libraries/ESP32Servo/ESP32PWM.cpp.o: in function ESP32PWM::readFreq()': /Users/ed/Documents/Arduino/libraries/ESP32Servo/src/ESP32PWM.cpp:224: multiple definition ofESP32PWM::readFreq()'; /private/var/folders/lj/j59j68zj02d1c9t02zkqsxr40000gn/T/arduino/sketches/F9003948BAB8F9EE99F02A36881B09BE/libraries/ESP32Servo/ESP32PWM 2.cpp.o:/Users/ed/Documents/Arduino/libraries/ESP32Servo/src/ESP32PWM 2.cpp:224: first defined here /Users/ed/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-2021r2-patch5-8.4.0/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/bin/ld: /private/var/folders/lj/j59j68zj02d1c9t02zkqsxr40000gn/T/arduino/sketches/F9003948BAB8F9EE99F02A36881B09BE/libraries/ESP32Servo/ESP32PWM.cpp.o: in function ESP32PWM::attach(int)': /Users/ed/Documents/Arduino/libraries/ESP32Servo/src/ESP32PWM.cpp:227: multiple definition ofESP32PWM::attach(int)'; /private/var/folders/lj/j59j68zj02d1c9t02zkqsxr40000gn/T/arduino/sketches/F9003948BAB8F9EE99F02A36881B09BE/libraries/ESP32Servo/ESP32PWM 2.cpp.o:/Users/ed/Documents/Arduino/libraries/ESP32Servo/src/ESP32PWM 2.cpp:227: first defined here /Users/ed/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-2021r2-patch5-8.4.0/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/bin/ld: /private/var/folders/lj/j59j68zj02d1c9t02zkqsxr40000gn/T/arduino/sketches/F9003948BAB8F9EE99F02A36881B09BE/libraries/ESP32Servo/ESP32PWM.cpp.o: in function ESP32PWM::attachPin(unsigned char)': /Users/ed/Documents/Arduino/libraries/ESP32Servo/src/ESP32PWM.cpp:231: multiple definition ofESP32PWM::attachPin(unsigned char)'; /private/var/folders/lj/j59j68zj02d1c9t02zkqsxr40000gn/T/arduino/sketches/F9003948BAB8F9EE99F02A36881B09BE/libraries/ESP32Servo/ESP32PWM 2.cpp.o:/Users/ed/Documents/Arduino/libraries/ESP32Servo/src/ESP32PWM 2.cpp:231: first defined here /Users/ed/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-2021r2-patch5-8.4.0/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/bin/ld: /private/var/folders/lj/j59j68zj02d1c9t02zkqsxr40000gn/T/arduino/sketches/F9003948BAB8F9EE99F02A36881B09BE/libraries/ESP32Servo/ESP32PWM.cpp.o: in function ESP32PWM::detachPin(int)': /Users/ed/Documents/Arduino/libraries/ESP32Servo/src/ESP32PWM.cpp:262: multiple definition ofESP32PWM::detachPin(int)'; /private/var/folders/lj/j59j68zj02d1c9t02zkqsxr40000gn/T/arduino/sketches/F9003948BAB8F9EE99F02A36881B09BE/libraries/ESP32Servo/ESP32PWM 2.cpp.o:/Users/ed/Documents/Arduino/libraries/ESP32Servo/src/ESP32PWM 2.cpp:262: first defined here /Users/ed/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-2021r2-patch5-8.4.0/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/bin/ld: /private/var/folders/lj/j59j68zj02d1c9t02zkqsxr40000gn/T/arduino/sketches/F9003948BAB8F9EE99F02A36881B09BE/libraries/ESP32Servo/ESP32PWM.cpp.o: in function ESP32PWM::checkFrequencyForSideEffects(double)': /Users/ed/Documents/Arduino/libraries/ESP32Servo/src/ESP32PWM.cpp:287: multiple definition ofESP32PWM::checkFrequencyForSideEffects(double)'; /private/var/folders/lj/j59j68zj02d1c9t02zkqsxr40000gn/T/arduino/sketches/F9003948BAB8F9EE99F02A36881B09BE/libraries/ESP32Servo/ESP32PWM 2.cpp.o:/Users/ed/Documents/Arduino/libraries/ESP32Servo/src/ESP32PWM 2.cpp:287: first defined here /Users/ed/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-2021r2-patch5-8.4.0/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/bin/ld: /private/var/folders/lj/j59j68zj02d1c9t02zkqsxr40000gn/T/arduino/sketches/F9003948BAB8F9EE99F02A36881B09BE/libraries/ESP32Servo/ESP32PWM.cpp.o: in function ESP32PWM::setup(double, unsigned char)': /Users/ed/Documents/Arduino/libraries/ESP32Servo/src/ESP32PWM.cpp:143: multiple definition ofESP32PWM::setup(double, unsigned char)'; /private/var/folders/lj/j59j68zj02d1c9t02zkqsxr40000gn/T/arduino/sketches/F9003948BAB8F9EE99F02A36881B09BE/libraries/ESP32Servo/ESP32PWM 2.cpp.o:/Users/ed/Documents/Arduino/libraries/ESP32Servo/src/ESP32PWM 2.cpp:143: first defined here /Users/ed/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-2021r2-patch5-8.4.0/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/bin/ld: /private/var/folders/lj/j59j68zj02d1c9t02zkqsxr40000gn/T/arduino/sketches/F9003948BAB8F9EE99F02A36881B09BE/libraries/ESP32Servo/ESP32PWM.cpp.o: in function ESP32PWM::attachPin(unsigned char, double, unsigned char)': /Users/ed/Documents/Arduino/libraries/ESP32Servo/src/ESP32PWM.cpp:256: multiple definition ofESP32PWM::attachPin(unsigned char, double, unsigned char)'; /private/var/folders/lj/j59j68zj02d1c9t02zkqsxr40000gn/T/arduino/sketches/F9003948BAB8F9EE99F02A36881B09BE/libraries/ESP32Servo/ESP32PWM 2.cpp.o:/Users/ed/Documents/Arduino/libraries/ESP32Servo/src/ESP32PWM 2.cpp:256: first defined here /Users/ed/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-2021r2-patch5-8.4.0/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/bin/ld: /private/var/folders/lj/j59j68zj02d1c9t02zkqsxr40000gn/T/arduino/sketches/F9003948BAB8F9EE99F02A36881B09BE/libraries/ESP32Servo/ESP32PWM.cpp.o: in function pwmFactory(int)': /Users/ed/Documents/Arduino/libraries/ESP32Servo/src/ESP32PWM.cpp:317: multiple definition ofpwmFactory(int)'; /private/var/folders/lj/j59j68zj02d1c9t02zkqsxr40000gn/T/arduino/sketches/F9003948BAB8F9EE99F02A36881B09BE/libraries/ESP32Servo/ESP32PWM 2.cpp.o:/Users/ed/Documents/Arduino/libraries/ESP32Servo/src/ESP32PWM 2.cpp:317: first defined here /Users/ed/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-2021r2-patch5-8.4.0/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/bin/ld: /private/var/folders/lj/j59j68zj02d1c9t02zkqsxr40000gn/T/arduino/sketches/F9003948BAB8F9EE99F02A36881B09BE/libraries/ESP32Servo/ESP32Servo.cpp.o: in function Servo::Servo()': /Users/ed/Documents/Arduino/libraries/ESP32Servo/src/ESP32Servo.cpp:57: multiple definition ofServo::Servo()'; /private/var/folders/lj/j59j68zj02d1c9t02zkqsxr40000gn/T/arduino/sketches/F9003948BAB8F9EE99F02A36881B09BE/libraries/ESP32Servo/ESP32Servo 2.cpp.o:/Users/ed/Documents/Arduino/libraries/ESP32Servo/src/ESP32Servo 2.cpp:57: first defined here /Users/ed/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-2021r2-patch5-8.4.0/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/bin/ld: /private/var/folders/lj/j59j68zj02d1c9t02zkqsxr40000gn/T/arduino/sketches/F9003948BAB8F9EE99F02A36881B09BE/libraries/ESP32Servo/ESP32Servo.cpp.o: in function Servo::Servo()': /Users/ed/Documents/Arduino/libraries/ESP32Servo/src/ESP32Servo.cpp:57: multiple definition ofServo::Servo()'; /private/var/folders/lj/j59j68zj02d1c9t02zkqsxr40000gn/T/arduino/sketches/F9003948BAB8F9EE99F02A36881B09BE/libraries/ESP32Servo/ESP32Servo 2.cpp.o:/Users/ed/Documents/Arduino/libraries/ESP32Servo/src/ESP32Servo 2.cpp:57: first defined here /Users/ed/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-2021r2-patch5-8.4.0/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/bin/ld: /private/var/folders/lj/j59j68zj02d1c9t02zkqsxr40000gn/T/arduino/sketches/F9003948BAB8F9EE99F02A36881B09BE/libraries/ESP32Servo/ESP32Servo.cpp.o: in function Servo::getPwm()': /Users/ed/Documents/Arduino/libraries/ESP32Servo/src/ESP32Servo.cpp:68: multiple definition ofServo::getPwm()'; /private/var/folders/lj/j59j68zj02d1c9t02zkqsxr40000gn/T/arduino/sketches/F9003948BAB8F9EE99F02A36881B09BE/libraries/ESP32Servo/ESP32Servo 2.cpp.o:/Users/ed/Documents/Arduino/libraries/ESP32Servo/src/ESP32Servo 2.cpp:68: first defined here /Users/ed/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-2021r2-patch5-8.4.0/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/bin/ld: /private/var/folders/lj/j59j68zj02d1c9t02zkqsxr40000gn/T/arduino/sketches/F9003948BAB8F9EE99F02A36881B09BE/libraries/ESP32Servo/ESP32Servo.cpp.o: in function Servo::attach(int, int, int)': /Users/ed/Documents/Arduino/libraries/ESP32Servo/src/ESP32Servo.cpp:80: multiple definition ofServo::attach(int, int, int)'; /private/var/folders/lj/j59j68zj02d1c9t02zkqsxr40000gn/T/arduino/sketches/F9003948BAB8F9EE99F02A36881B09BE/libraries/ESP32Servo/ESP32Servo 2.cpp.o:/Users/ed/Documents/Arduino/libraries/ESP32Servo/src/ESP32Servo 2.cpp:80: first defined here /Users/ed/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-2021r2-patch5-8.4.0/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/bin/ld: /private/var/folders/lj/j59j68zj02d1c9t02zkqsxr40000gn/T/arduino/sketches/F9003948BAB8F9EE99F02A36881B09BE/libraries/ESP32Servo/ESP32Servo.cpp.o: in function Servo::attach(int)': /Users/ed/Documents/Arduino/libraries/ESP32Servo/src/ESP32Servo.cpp:74: multiple definition ofServo::attach(int)'; /private/var/folders/lj/j59j68zj02d1c9t02zkqsxr40000gn/T/arduino/sketches/F9003948BAB8F9EE99F02A36881B09BE/libraries/ESP32Servo/ESP32Servo 2.cpp.o:/Users/ed/Documents/Arduino/libraries/ESP32Servo/src/ESP32Servo 2.cpp:74: first defined here /Users/ed/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-2021r2-patch5-8.4.0/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/bin/ld: /private/var/folders/lj/j59j68zj02d1c9t02zkqsxr40000gn/T/arduino/sketches/F9003948BAB8F9EE99F02A36881B09BE/libraries/ESP32Servo/ESP32Servo.cpp.o: in function Servo::detach()': /Users/ed/Documents/Arduino/libraries/ESP32Servo/src/ESP32Servo.cpp:135: multiple definition ofServo::detach()'; /private/var/folders/lj/j59j68zj02d1c9t02zkqsxr40000gn/T/arduino/sketches/F9003948BAB8F9EE99F02A36881B09BE/libraries/ESP32Servo/ESP32Servo 2.cpp.o:/Users/ed/Documents/Arduino/libraries/ESP32Servo/src/ESP32Servo 2.cpp:135: first defined here /Users/ed/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-2021r2-patch5-8.4.0/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/bin/ld: /private/var/folders/lj/j59j68zj02d1c9t02zkqsxr40000gn/T/arduino/sketches/F9003948BAB8F9EE99F02A36881B09BE/libraries/ESP32Servo/ESP32Servo.cpp.o: in function Servo::attached()': /Users/ed/Documents/Arduino/libraries/ESP32Servo/src/ESP32Servo.cpp:204: multiple definition ofServo::attached()'; /private/var/folders/lj/j59j68zj02d1c9t02zkqsxr40000gn/T/arduino/sketches/F9003948BAB8F9EE99F02A36881B09BE/libraries/ESP32Servo/ESP32Servo 2.cpp.o:/Users/ed/Documents/Arduino/libraries/ESP32Servo/src/ESP32Servo 2.cpp:198: first defined here /Users/ed/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-2021r2-patch5-8.4.0/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/bin/ld: /private/var/folders/lj/j59j68zj02d1c9t02zkqsxr40000gn/T/arduino/sketches/F9003948BAB8F9EE99F02A36881B09BE/libraries/ESP32Servo/ESP32Servo.cpp.o: in function Servo::setTimerWidth(int)': /Users/ed/Documents/Arduino/libraries/ESP32Servo/src/ESP32Servo.cpp:209: multiple definition ofServo::setTimerWidth(int)'; /private/var/folders/lj/j59j68zj02d1c9t02zkqsxr40000gn/T/arduino/sketches/F9003948BAB8F9EE99F02A36881B09BE/libraries/ESP32Servo/ESP32Servo 2.cpp.o:/Users/ed/Documents/Arduino/libraries/ESP32Servo/src/ESP32Servo 2.cpp:203: first defined here /Users/ed/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-2021r2-patch5-8.4.0/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/bin/ld: /private/var/folders/lj/j59j68zj02d1c9t02zkqsxr40000gn/T/arduino/sketches/F9003948BAB8F9EE99F02A36881B09BE/libraries/ESP32Servo/ESP32Servo.cpp.o: in function Servo::readTimerWidth()': /Users/ed/Documents/Arduino/libraries/ESP32Servo/src/ESP32Servo.cpp:243: multiple definition ofServo::readTimerWidth()'; /private/var/folders/lj/j59j68zj02d1c9t02zkqsxr40000gn/T/arduino/sketches/F9003948BAB8F9EE99F02A36881B09BE/libraries/ESP32Servo/ESP32Servo 2.cpp.o:/Users/ed/Documents/Arduino/libraries/ESP32Servo/src/ESP32Servo 2.cpp:237: first defined here /Users/ed/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-2021r2-patch5-8.4.0/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/bin/ld: /private/var/folders/lj/j59j68zj02d1c9t02zkqsxr40000gn/T/arduino/sketches/F9003948BAB8F9EE99F02A36881B09BE/libraries/ESP32Servo/ESP32Servo.cpp.o: in function Servo::usToTicks(int)': /Users/ed/Documents/Arduino/libraries/ESP32Servo/src/ESP32Servo.cpp:248: multiple definition ofServo::usToTicks(int)'; /private/var/folders/lj/j59j68zj02d1c9t02zkqsxr40000gn/T/arduino/sketches/F9003948BAB8F9EE99F02A36881B09BE/libraries/ESP32Servo/ESP32Servo 2.cpp.o:/Users/ed/Documents/Arduino/libraries/ESP32Servo/src/ESP32Servo 2.cpp:242: first defined here /Users/ed/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-2021r2-patch5-8.4.0/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/bin/ld: /private/var/folders/lj/j59j68zj02d1c9t02zkqsxr40000gn/T/arduino/sketches/F9003948BAB8F9EE99F02A36881B09BE/libraries/ESP32Servo/ESP32Servo.cpp.o: in function Servo::writeMicroseconds(int)': /Users/ed/Documents/Arduino/libraries/ESP32Servo/src/ESP32Servo.cpp:161: multiple definition ofServo::writeMicroseconds(int)'; /private/var/folders/lj/j59j68zj02d1c9t02zkqsxr40000gn/T/arduino/sketches/F9003948BAB8F9EE99F02A36881B09BE/libraries/ESP32Servo/ESP32Servo 2.cpp.o:/Users/ed/Documents/Arduino/libraries/ESP32Servo/src/ESP32Servo 2.cpp:161: first defined here /Users/ed/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-2021r2-patch5-8.4.0/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/bin/ld: /private/var/folders/lj/j59j68zj02d1c9t02zkqsxr40000gn/T/arduino/sketches/F9003948BAB8F9EE99F02A36881B09BE/libraries/ESP32Servo/ESP32Servo.cpp.o: in function Servo::write(int)': /Users/ed/Documents/Arduino/libraries/ESP32Servo/src/ESP32Servo.cpp:146: multiple definition ofServo::write(int)'; /private/var/folders/lj/j59j68zj02d1c9t02zkqsxr40000gn/T/arduino/sketches/F9003948BAB8F9EE99F02A36881B09BE/libraries/ESP32Servo/ESP32Servo 2.cpp.o:/Users/ed/Documents/Arduino/libraries/ESP32Servo/src/ESP32Servo 2.cpp:146: first defined here /Users/ed/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-2021r2-patch5-8.4.0/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/bin/ld: /private/var/folders/lj/j59j68zj02d1c9t02zkqsxr40000gn/T/arduino/sketches/F9003948BAB8F9EE99F02A36881B09BE/libraries/ESP32Servo/ESP32Servo.cpp.o: in function Servo::ticksToUs(int)': /Users/ed/Documents/Arduino/libraries/ESP32Servo/src/ESP32Servo.cpp:253: multiple definition ofServo::ticksToUs(int)'; /private/var/folders/lj/j59j68zj02d1c9t02zkqsxr40000gn/T/arduino/sketches/F9003948BAB8F9EE99F02A36881B09BE/libraries/ESP32Servo/ESP32Servo 2.cpp.o:/Users/ed/Documents/Arduino/libraries/ESP32Servo/src/ESP32Servo 2.cpp:247: first defined here /Users/ed/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-2021r2-patch5-8.4.0/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/bin/ld: /private/var/folders/lj/j59j68zj02d1c9t02zkqsxr40000gn/T/arduino/sketches/F9003948BAB8F9EE99F02A36881B09BE/libraries/ESP32Servo/ESP32Servo.cpp.o: in function Servo::readMicroseconds()': /Users/ed/Documents/Arduino/libraries/ESP32Servo/src/ESP32Servo.cpp:189: multiple definition ofServo::readMicroseconds()'; /private/var/folders/lj/j59j68zj02d1c9t02zkqsxr40000gn/T/arduino/sketches/F9003948BAB8F9EE99F02A36881B09BE/libraries/ESP32Servo/ESP32Servo 2.cpp.o:/Users/ed/Documents/Arduino/libraries/ESP32Servo/src/ESP32Servo 2.cpp:183: first defined here /Users/ed/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-2021r2-patch5-8.4.0/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/bin/ld: /private/var/folders/lj/j59j68zj02d1c9t02zkqsxr40000gn/T/arduino/sketches/F9003948BAB8F9EE99F02A36881B09BE/libraries/ESP32Servo/ESP32Servo.cpp.o: in function Servo::read()': /Users/ed/Documents/Arduino/libraries/ESP32Servo/src/ESP32Servo.cpp:184: multiple definition ofServo::read()'; /private/var/folders/lj/j59j68zj02d1c9t02zkqsxr40000gn/T/arduino/sketches/F9003948BAB8F9EE99F02A36881B09BE/libraries/ESP32Servo/ESP32Servo 2.cpp.o:/Users/ed/Documents/Arduino/libraries/ESP32Servo/src/ESP32Servo 2.cpp:178: first defined here collect2: error: ld returned 1 exit status

exit status 1

Compilation error: exit status 1`

edrobertsrayne commented 8 months ago

I have found the solution. There was a clash with another, similarly named, library that I had installed.