Richard-Gemmell / teensy4_i2c

An I2C library for the Teensy 4. Provides slave and master mode.
MIT License
92 stars 20 forks source link

Hi, one other quick issue #27

Closed Sorin-Jayaweera closed 2 years ago

Sorin-Jayaweera commented 2 years ago

--I don't know where a forum to ask this is, but if you want me to move this there I can --

Hi, I'm using a library called the "Adafruit_PWMServoDriver" In both the .cpp and .h of the library, I changed the includes to (cpp) Origional:

include "Adafruit_PWMServoDriver.h"

include

New:

include "Adafruit_PWMServoDriver.h"

include "i2c_driver_wire.h"

(.h) Origional:

include

include

New:

include "Arduino.h"

include "i2c_driver_wire.h"

However, when I try to build the code, I get the error message Adafruit_PWMServoDriver.cpp.o: In function `Adafruit_PWMServoDriver::Adafruit_PWMServoDriver()':

Adafruit_PWMServoDriver.cpp:40: multiple definition of `Adafruit_PWMServoDriver::Adafruit_PWMServoDriver()' (Deleted the unnessisry filepath lines)

I tried putting "#pragma once" at the top of the .h, but i got the same error. What should I do / what am I doing wrong?

Thank you Mr. Gemmell!

Just in case, the full error message

USER [CPP] main.cpp 
LIB [CPP] Adafruit_PWMServoDriver.cpp 

[LD]  .vsteensy/build/throttle2.elf 
Memory region         Used Size  Region Size  %age Used
            ITCM:       14764 B       512 KB      2.82%
            DTCM:       14080 B       512 KB      2.69%
             RAM:       12384 B       512 KB      2.36%
           FLASH:         28 KB      1984 KB      1.41.vsteensy/build/lib/Adafruit-PWM-Servo-Driver-Library-master/Adafruit_PWMServoDriver.cpp.o: In function `Adafruit_PWMServoDriver::Adafruit_PWMServoDriver()':
C:\Dropbox\allSaves\robotics\1Arduinorecent\realvisualrover\lib_changedtoT4I2c\libraries/Adafruit-PWM-Servo-Driver-Library-master/Adafruit_PWMServoDriver.cpp:40: multiple definition of `Adafruit_PWMServoDriver::Adafruit_PWMServoDriver()'
.vsteensy/build/lib/Adafruit-PWM-Servo-Driver-Library-master/Adafruit_PWMServoDriver.cpp.o:C:\Dropbox\allSaves\robotics\1Arduinorecent\realvisualrover\lib_changedtoT4I2c\libraries/Adafruit-PWM-Servo-Driver-Library-master/Adafruit_PWMServoDriver.cpp:40: first defined here
c:/progra~2/arduino/hardware/tools/arm/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/bin/ld.exe: Disabling relaxation: it will not work with multiple definitions
.vsteensy/build/lib/Adafruit-PWM-Servo-Driver-Library-master/Adafruit_PWMServoDriver.cpp.o: In function `Adafruit_PWMServoDriver::Adafruit_PWMServoDriver()':
C:\Dropbox\allSaves\robotics\1Arduinorecent\realvisualrover\lib_changedtoT4I2c\libraries/Adafruit-PWM-Servo-Driver-Library-master/Adafruit_PWMServoDriver.cpp:40: multiple definition of `Adafruit_PWMServoDriver::Adafruit_PWMServoDriver()'
.vsteensy/build/lib/Adafruit-PWM-Servo-Driver-Library-master/Adafruit_PWMServoDriver.cpp.o:C:\Dropbox\allSaves\robotics\1Arduinorecent\realvisualrover\lib_changedtoT4I2c\libraries/Adafruit-PWM-Servo-Driver-Library-master/Adafruit_PWMServoDriver.cpp:40: first defined here
.vsteensy/build/lib/Adafruit-PWM-Servo-Driver-Library-master/Adafruit_PWMServoDriver.cpp.o: In function `Adafruit_PWMServoDriver::Adafruit_PWMServoDriver()':
C:\Dropbox\allSaves\robotics\1Arduinorecent\realvisualrover\lib_changedtoT4I2c\libraries/Adafruit-PWM-Servo-Driver-Library-master/Adafruit_PWMServoDriver.cpp:40: multiple definition of `Adafruit_PWMServoDriver::Adafruit_PWMServoDriver(unsigned char)'
.vsteensy/build/lib/Adafruit-PWM-Servo-Driver-Library-master/Adafruit_PWMServoDriver.cpp.o:C:\Dropbox\allSaves\robotics\1Arduinorecent\realvisualrover\lib_changedtoT4I2c\libraries/Adafruit-PWM-Servo-Driver-Library-master/Adafruit_PWMServoDriver.cpp:40: first defined here
.vsteensy/build/lib/Adafruit-PWM-Servo-Driver-Library-master/Adafruit_PWMServoDriver.cpp.o: In function `Adafruit_PWMServoDriver::Adafruit_PWMServoDriver()':
C:\Dropbox\allSaves\robotics\1Arduinorecent\realvisualrover\lib_changedtoT4I2c\libraries/Adafruit-PWM-Servo-Driver-Library-master/Adafruit_PWMServoDriver.cpp:40: multiple definition of `Adafruit_PWMServoDriver::Adafruit_PWMServoDriver(unsigned char)'
.vsteensy/build/lib/Adafruit-PWM-Servo-Driver-Library-master/Adafruit_PWMServoDriver.cpp.o:C:\Dropbox\allSaves\robotics\1Arduinorecent\realvisualrover\lib_changedtoT4I2c\libraries/Adafruit-PWM-Servo-Driver-Library-master/Adafruit_PWMServoDriver.cpp:40: first defined here
.vsteensy/build/lib/Adafruit-PWM-Servo-Driver-Library-master/Adafruit_PWMServoDriver.cpp.o: In function `Adafruit_PWMServoDriver::Adafruit_PWMServoDriver()':
C:\Dropbox\allSaves\robotics\1Arduinorecent\realvisualrover\lib_changedtoT4I2c\libraries/Adafruit-PWM-Servo-Driver-Library-master/Adafruit_PWMServoDriver.cpp:40: multiple definition of `Adafruit_PWMServoDriver::Adafruit_PWMServoDriver(unsigned char, I2CDriverWire&)'
.vsteensy/build/lib/Adafruit-PWM-Servo-Driver-Library-master/Adafruit_PWMServoDriver.cpp.o:C:\Dropbox\allSaves\robotics\1Arduinorecent\realvisualrover\lib_changedtoT4I2c\libraries/Adafruit-PWM-Servo-Driver-Library-master/Adafruit_PWMServoDriver.cpp:40: first defined here
.vsteensy/build/lib/Adafruit-PWM-Servo-Driver-Library-master/Adafruit_PWMServoDriver.cpp.o: In function `Adafruit_PWMServoDriver::Adafruit_PWMServoDriver()':
C:\Dropbox\allSaves\robotics\1Arduinorecent\realvisualrover\lib_changedtoT4I2c\libraries/Adafruit-PWM-Servo-Driver-Library-master/Adafruit_PWMServoDriver.cpp:40: multiple definition of `Adafruit_PWMServoDriver::Adafruit_PWMServoDriver(unsigned char, I2CDriverWire&)'
.vsteensy/build/lib/Adafruit-PWM-Servo-Driver-Library-master/Adafruit_PWMServoDriver.cpp.o:C:\Dropbox\allSaves\robotics\1Arduinorecent\realvisualrover\lib_changedtoT4I2c\libraries/Adafruit-PWM-Servo-Driver-Library-master/Adafruit_PWMServoDriver.cpp:40: first defined here
.vsteensy/build/lib/Adafruit-PWM-Servo-Driver-Library-master/Adafruit_PWMServoDriver.cpp.o: In function `Adafruit_PWMServoDriver::Adafruit_PWMServoDriver()':
C:\Dropbox\allSaves\robotics\1Arduinorecent\realvisualrover\lib_changedtoT4I2c\libraries/Adafruit-PWM-Servo-Driver-Library-master/Adafruit_PWMServoDriver.cpp:40: multiple definition of `Adafruit_PWMServoDriver::getPWM(unsigned char)'
.vsteensy/build/lib/Adafruit-PWM-Servo-Driver-Library-master/Adafruit_PWMServoDriver.cpp.o:C:\Dropbox\allSaves\robotics\1Arduinorecent\realvisualrover\lib_changedtoT4I2c\libraries/Adafruit-PWM-Servo-Driver-Library-master/Adafruit_PWMServoDriver.cpp:40: first defined here
.vsteensy/build/lib/Adafruit-PWM-Servo-Driver-Library-master/Adafruit_PWMServoDriver.cpp.o: In function `Adafruit_PWMServoDriver::Adafruit_PWMServoDriver()':
C:\Dropbox\allSaves\robotics\1Arduinorecent\realvisualrover\lib_changedtoT4I2c\libraries/Adafruit-PWM-Servo-Driver-Library-master/Adafruit_PWMServoDriver.cpp:40: multiple definition of `Adafruit_PWMServoDriver::setPWM(unsigned char, unsigned short, unsigned short)'
.vsteensy/build/lib/Adafruit-PWM-Servo-Driver-Library-master/Adafruit_PWMServoDriver.cpp.o:C:\Dropbox\allSaves\robotics\1Arduinorecent\realvisualrover\lib_changedtoT4I2c\libraries/Adafruit-PWM-Servo-Driver-Library-master/Adafruit_PWMServoDriver.cpp:40: first defined here
.vsteensy/build/lib/Adafruit-PWM-Servo-Driver-Library-master/Adafruit_PWMServoDriver.cpp.o: In function `Adafruit_PWMServoDriver::Adafruit_PWMServoDriver()':
C:\Dropbox\allSaves\robotics\1Arduinorecent\realvisualrover\lib_changedtoT4I2c\libraries/Adafruit-PWM-Servo-Driver-Library-master/Adafruit_PWMServoDriver.cpp:40: multiple definition of `Adafruit_PWMServoDriver::setPin(unsigned char, unsigned short, bool)'
.vsteensy/build/lib/Adafruit-PWM-Servo-Driver-Library-master/Adafruit_PWMServoDriver.cpp.o:C:\Dropbox\allSaves\robotics\1Arduinorecent\realvisualrover\lib_changedtoT4I2c\libraries/Adafruit-PWM-Servo-Driver-Library-master/Adafruit_PWMServoDriver.cpp:40: first defined here
.vsteensy/build/lib/Adafruit-PWM-Servo-Driver-Library-master/Adafruit_PWMServoDriver.cpp.o: In function `Adafruit_PWMServoDriver::Adafruit_PWMServoDriver()':
C:\Dropbox\allSaves\robotics\1Arduinorecent\realvisualrover\lib_changedtoT4I2c\libraries/Adafruit-PWM-Servo-Driver-Library-master/Adafruit_PWMServoDriver.cpp:40: multiple definition of `Adafruit_PWMServoDriver::getOscillatorFrequency()'
.vsteensy/build/lib/Adafruit-PWM-Servo-Driver-Library-master/Adafruit_PWMServoDriver.cpp.o:C:\Dropbox\allSaves\robotics\1Arduinorecent\realvisualrover\lib_changedtoT4I2c\libraries/Adafruit-PWM-Servo-Driver-Library-master/Adafruit_PWMServoDriver.cpp:40: first defined here
.vsteensy/build/lib/Adafruit-PWM-Servo-Driver-Library-master/Adafruit_PWMServoDriver.cpp.o: In function `Adafruit_PWMServoDriver::Adafruit_PWMServoDriver()':
C:\Dropbox\allSaves\robotics\1Arduinorecent\realvisualrover\lib_changedtoT4I2c\libraries/Adafruit-PWM-Servo-Driver-Library-master/Adafruit_PWMServoDriver.cpp:40: multiple definition of `Adafruit_PWMServoDriver::setOscillatorFrequency(unsigned long)'
.vsteensy/build/lib/Adafruit-PWM-Servo-Driver-Library-master/Adafruit_PWMServoDriver.cpp.o:C:\Dropbox\allSaves\robotics\1Arduinorecent\realvisualrover\lib_changedtoT4I2c\libraries/Adafruit-PWM-Servo-Driver-Library-master/Adafruit_PWMServoDriver.cpp:40: first defined here
.vsteensy/build/lib/Adafruit-PWM-Servo-Driver-Library-master/Adafruit_PWMServoDriver.cpp.o: In function `Adafruit_PWMServoDriver::Adafruit_PWMServoDriver()':
C:\Dropbox\allSaves\robotics\1Arduinorecent\realvisualrover\lib_changedtoT4I2c\libraries/Adafruit-PWM-Servo-Driver-Library-master/Adafruit_PWMServoDriver.cpp:40: multiple definition of `Adafruit_PWMServoDriver::read8(unsigned char)'
.vsteensy/build/lib/Adafruit-PWM-Servo-Driver-Library-master/Adafruit_PWMServoDriver.cpp.o:C:\Dropbox\allSaves\robotics\1Arduinorecent\realvisualrover\lib_changedtoT4I2c\libraries/Adafruit-PWM-Servo-Driver-Library-master/Adafruit_PWMServoDriver.cpp:40: first defined here
.vsteensy/build/lib/Adafruit-PWM-Servo-Driver-Library-master/Adafruit_PWMServoDriver.cpp.o: In function `Adafruit_PWMServoDriver::Adafruit_PWMServoDriver()':
C:\Dropbox\allSaves\robotics\1Arduinorecent\realvisualrover\lib_changedtoT4I2c\libraries/Adafruit-PWM-Servo-Driver-Library-master/Adafruit_PWMServoDriver.cpp:40: multiple definition of `Adafruit_PWMServoDriver::readPrescale()'
.vsteensy/build/lib/Adafruit-PWM-Servo-Driver-Library-master/Adafruit_PWMServoDriver.cpp.o:C:\Dropbox\allSaves\robotics\1Arduinorecent\realvisualrover\lib_changedtoT4I2c\libraries/Adafruit-PWM-Servo-Driver-Library-master/Adafruit_PWMServoDriver.cpp:40: first defined here
.vsteensy/build/lib/Adafruit-PWM-Servo-Driver-Library-master/Adafruit_PWMServoDriver.cpp.o: In function `Adafruit_PWMServoDriver::Adafruit_PWMServoDriver()':
C:\Dropbox\allSaves\robotics\1Arduinorecent\realvisualrover\lib_changedtoT4I2c\libraries/Adafruit-PWM-Servo-Driver-Library-master/Adafruit_PWMServoDriver.cpp:40: multiple definition of `Adafruit_PWMServoDriver::writeMicroseconds(unsigned char, unsigned short)'
.vsteensy/build/lib/Adafruit-PWM-Servo-Driver-Library-master/Adafruit_PWMServoDriver.cpp.o:C:\Dropbox\allSaves\robotics\1Arduinorecent\realvisualrover\lib_changedtoT4I2c\libraries/Adafruit-PWM-Servo-Driver-Library-master/Adafruit_PWMServoDriver.cpp:40: first defined here
.vsteensy/build/lib/Adafruit-PWM-Servo-Driver-Library-master/Adafruit_PWMServoDriver.cpp.o: In function `Adafruit_PWMServoDriver::Adafruit_PWMServoDriver()':
C:\Dropbox\allSaves\robotics\1Arduinorecent\realvisualrover\lib_changedtoT4I2c\libraries/Adafruit-PWM-Servo-Driver-Library-master/Adafruit_PWMServoDriver.cpp:40: multiple definition of `Adafruit_PWMServoDriver::write8(unsigned char, unsigned char)'
.vsteensy/build/lib/Adafruit-PWM-Servo-Driver-Library-master/Adafruit_PWMServoDriver.cpp.o:C:\Dropbox\allSaves\robotics\1Arduinorecent\realvisualrover\lib_changedtoT4I2c\libraries/Adafruit-PWM-Servo-Driver-Library-master/Adafruit_PWMServoDriver.cpp:40: first defined here
.vsteensy/build/lib/Adafruit-PWM-Servo-Driver-Library-master/Adafruit_PWMServoDriver.cpp.o: In function `Adafruit_PWMServoDriver::Adafruit_PWMServoDriver()':
C:\Dropbox\allSaves\robotics\1Arduinorecent\realvisualrover\lib_changedtoT4I2c\libraries/Adafruit-PWM-Servo-Driver-Library-master/Adafruit_PWMServoDriver.cpp:40: multiple definition of `Adafruit_PWMServoDriver::reset()'
.vsteensy/build/lib/Adafruit-PWM-Servo-Driver-Library-master/Adafruit_PWMServoDriver.cpp.o:C:\Dropbox\allSaves\robotics\1Arduinorecent\realvisualrover\lib_changedtoT4I2c\libraries/Adafruit-PWM-Servo-Driver-Library-master/Adafruit_PWMServoDriver.cpp:40: first defined here
.vsteensy/build/lib/Adafruit-PWM-Servo-Driver-Library-master/Adafruit_PWMServoDriver.cpp.o: In function `Adafruit_PWMServoDriver::Adafruit_PWMServoDriver()':
C:\Dropbox\allSaves\robotics\1Arduinorecent\realvisualrover\lib_changedtoT4I2c\libraries/Adafruit-PWM-Servo-Driver-Library-master/Adafruit_PWMServoDriver.cpp:40: multiple definition of `Adafruit_PWMServoDriver::sleep()'
.vsteensy/build/lib/Adafruit-PWM-Servo-Driver-Library-master/Adafruit_PWMServoDriver.cpp.o:C:\Dropbox\allSaves\robotics\1Arduinorecent\realvisualrover\lib_changedtoT4I2c\libraries/Adafruit-PWM-Servo-Driver-Library-master/Adafruit_PWMServoDriver.cpp:40: first defined here
.vsteensy/build/lib/Adafruit-PWM-Servo-Driver-Library-master/Adafruit_PWMServoDriver.cpp.o: In function `Adafruit_PWMServoDriver::Adafruit_PWMServoDriver()':
C:\Dropbox\allSaves\robotics\1Arduinorecent\realvisualrover\lib_changedtoT4I2c\libraries/Adafruit-PWM-Servo-Driver-Library-master/Adafruit_PWMServoDriver.cpp:40: multiple definition of `Adafruit_PWMServoDriver::wakeup()'
.vsteensy/build/lib/Adafruit-PWM-Servo-Driver-Library-master/Adafruit_PWMServoDriver.cpp.o:C:\Dropbox\allSaves\robotics\1Arduinorecent\realvisualrover\lib_changedtoT4I2c\libraries/Adafruit-PWM-Servo-Driver-Library-master/Adafruit_PWMServoDriver.cpp:40: first defined here
.vsteensy/build/lib/Adafruit-PWM-Servo-Driver-Library-master/Adafruit_PWMServoDriver.cpp.o: In function `Adafruit_PWMServoDriver::Adafruit_PWMServoDriver()':
C:\Dropbox\allSaves\robotics\1Arduinorecent\realvisualrover\lib_changedtoT4I2c\libraries/Adafruit-PWM-Servo-Driver-Library-master/Adafruit_PWMServoDriver.cpp:40: multiple definition of `Adafruit_PWMServoDriver::setExtClk(unsigned char)'
.vsteensy/build/lib/Adafruit-PWM-Servo-Driver-Library-master/Adafruit_PWMServoDriver.cpp.o:C:\Dropbox\allSaves\robotics\1Arduinorecent\realvisualrover\lib_changedtoT4I2c\libraries/Adafruit-PWM-Servo-Driver-Library-master/Adafruit_PWMServoDriver.cpp:40: first defined here
.vsteensy/build/lib/Adafruit-PWM-Servo-Driver-Library-master/Adafruit_PWMServoDriver.cpp.o: In function `Adafruit_PWMServoDriver::Adafruit_PWMServoDriver()':
C:\Dropbox\allSaves\robotics\1Arduinorecent\realvisualrover\lib_changedtoT4I2c\libraries/Adafruit-PWM-Servo-Driver-Library-master/Adafruit_PWMServoDriver.cpp:40: multiple definition of `Adafruit_PWMServoDriver::setPWMFreq(float)'
.vsteensy/build/lib/Adafruit-PWM-Servo-Driver-Library-master/Adafruit_PWMServoDriver.cpp.o:C:\Dropbox\allSaves\robotics\1Arduinorecent\realvisualrover\lib_changedtoT4I2c\libraries/Adafruit-PWM-Servo-Driver-Library-master/Adafruit_PWMServoDriver.cpp:40: first defined here
.vsteensy/build/lib/Adafruit-PWM-Servo-Driver-Library-master/Adafruit_PWMServoDriver.cpp.o: In function `Adafruit_PWMServoDriver::Adafruit_PWMServoDriver()':
C:\Dropbox\allSaves\robotics\1Arduinorecent\realvisualrover\lib_changedtoT4I2c\libraries/Adafruit-PWM-Servo-Driver-Library-master/Adafruit_PWMServoDriver.cpp:40: multiple definition of `Adafruit_PWMServoDriver::begin(unsigned char)'
.vsteensy/build/lib/Adafruit-PWM-Servo-Driver-Library-master/Adafruit_PWMServoDriver.cpp.o:C:\Dropbox\allSaves\robotics\1Arduinorecent\realvisualrover\lib_changedtoT4I2c\libraries/Adafruit-PWM-Servo-Driver-Library-master/Adafruit_PWMServoDriver.cpp:40: first defined here
.vsteensy/build/lib/Adafruit-PWM-Servo-Driver-Library-master/Adafruit_PWMServoDriver.cpp.o: In function `Adafruit_PWMServoDriver::Adafruit_PWMServoDriver()':
C:\Dropbox\allSaves\robotics\1Arduinorecent\realvisualrover\lib_changedtoT4I2c\libraries/Adafruit-PWM-Servo-Driver-Library-master/Adafruit_PWMServoDriver.cpp:40: multiple definition of `Adafruit_PWMServoDriver::setOutputMode(bool)'
.vsteensy/build/lib/Adafruit-PWM-Servo-Driver-Library-master/Adafruit_PWMServoDriver.cpp.o:C:\Dropbox\allSaves\robotics\1Arduinorecent\realvisualrover\lib_changedtoT4I2c\libraries/Adafruit-PWM-Servo-Driver-Library-master/Adafruit_PWMServoDriver.cpp:40: first defined here
collect2.exe: error: ld returned 1 exit status
%
make: *** [makefile:237: .vsteensy/build/throttle2.elf] Error 1
The terminal process "C:\Program Files\PowerShell\7\pwsh.exe -Command C:/arduinovisualteensy/visualteensy/VisualTeensy-master/VisualTeensy/make.exe all -j -Otarget" terminated with exit code: 1.
Sorin-Jayaweera commented 2 years ago

turns out it is an issue with the library itself, your code is perfect. Sorry for the worry!

Richard-Gemmell commented 2 years ago

No worries. Thanks for letting me know.