--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.
--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