Jump to content
I2Cdevlib Forums

cannot get mpu6050 DMP6 sketch to compile correctly


Recommended Posts

I am new here and definitely new working with Arduinos. If this is the wrong place for this post please let me know.

Im currently working on a project and I want to collect acceleration data that will eventually be used for activating other components within the environment. I have an Arduino nano and an mpu6050 all connected appropriately that can collect raw values. However, when I try to get more complex code I am having a hard time with compiling the code without Arduino IDE spitting out a bunch of errors. I am assuming I don't have the correct libraries but I am honestly out of things to try. 

I downloaded the I2Cdevlib clone and extracted the I2Cdev and MPU 6050 folders out of jrowberg-i2cdevlib-460d810/Arduino folder into C:/users/(user)/documents/arduino/libraries. Once I launch Arduino IDE and the MPU6050_DMP6 example followed by compiling I get the following errors:

In file included from C:\Users\maadi\Documents\Arduino\libraries\MPU6050\examples\MPU6050_DMP6\MPU6050_DMP6.ino:51:0:

C:\Users\maadi\Documents\Arduino\libraries\MPU6050/MPU6050_6Axis_MotionApps20.h: In member function 'uint8_t MPU6050::dmpGetGravity(int16_t*, const uint8_t*)':

C:\Users\maadi\Documents\Arduino\libraries\MPU6050/MPU6050_6Axis_MotionApps20.h:522:65: warning: integer overflow in expression [-Woverflow]

         - (int32_t)qI[2] * qI[2] + (int32_t)qI[3] * qI[3]) / (2 * 16384);

                                                               ~~^~~~~~~

C:\Users\maadi\Documents\Arduino\libraries\MPU6050/MPU6050.h:436:7: warning: type 'struct MPU6050' violates the C++ One Definition Rule [-Wodr]

 class MPU6050 {

       ^

C:\Users\maadi\Documents\Arduino\libraries\MPU6050\MPU6050.h:436:7: note: a different type is defined in another translation unit

 class MPU6050 {

       ^

C:\Users\maadi\Documents\Arduino\libraries\MPU6050/MPU6050.h:1034:18: note: the first difference of corresponding definitions is field 'dmpPacketBuffer'

         uint8_t *dmpPacketBuffer;

                  ^

C:\Users\maadi\Documents\Arduino\libraries\MPU6050\MPU6050.h:436:7: note: a type with different number of fields is defined in another translation unit

 class MPU6050 {

       ^

C:\Users\maadi\Documents\Arduino\libraries\MPU6050/MPU6050.h:440:14: warning: 'initialize' violates the C++ One Definition Rule  [-Wodr]

         void initialize();

              ^

C:\Users\maadi\Documents\Arduino\libraries\MPU6050\MPU6050.cpp:56:6: note: implicit this pointer type mismatch

 void MPU6050::initialize() {

      ^

C:\Users\maadi\Documents\Arduino\libraries\MPU6050\MPU6050.h:436:7: note: type 'struct MPU6050' itself violates the C++ One Definition Rule

 class MPU6050 {

       ^

C:\Users\maadi\Documents\Arduino\libraries\MPU6050/MPU6050.h:436:7: note: the incompatible type is defined here

 class MPU6050 {

       ^

C:\Users\maadi\Documents\Arduino\libraries\MPU6050\MPU6050.cpp:56:6: note: 'initialize' was previously declared here

 void MPU6050::initialize() {

      ^

C:\Users\maadi\Documents\Arduino\libraries\MPU6050\MPU6050.cpp:56:6: note: code may be misoptimized unless -fno-strict-aliasing is used

C:\Users\maadi\Documents\Arduino\libraries\MPU6050/MPU6050.h:441:14: warning: 'testConnection' violates the C++ One Definition Rule  [-Wodr]

         bool testConnection();

              ^

C:\Users\maadi\Documents\Arduino\libraries\MPU6050\MPU6050.cpp:67:6: note: implicit this pointer type mismatch

 bool MPU6050::testConnection() {

      ^

C:\Users\maadi\Documents\Arduino\libraries\MPU6050\MPU6050.h:436:7: note: type 'struct MPU6050' itself violates the C++ One Definition Rule

 class MPU6050 {

       ^

C:\Users\maadi\Documents\Arduino\libraries\MPU6050/MPU6050.h:436:7: note: the incompatible type is defined here

 class MPU6050 {

       ^

C:\Users\maadi\Documents\Arduino\libraries\MPU6050\MPU6050.cpp:67:6: note: 'testConnection' was previously declared here

 bool MPU6050::testConnection() {

      ^

C:\Users\maadi\Documents\Arduino\libraries\MPU6050\MPU6050.cpp:67:6: note: code may be misoptimized unless -fno-strict-aliasing is used

C:\Users\maadi\Documents\Arduino\libraries\MPU6050/MPU6050.h:766:14: warning: 'setXGyroOffset' violates the C++ One Definition Rule  [-Wodr]

         void setXGyroOffset(int16_t offset);

              ^

C:\Users\maadi\Documents\Arduino\libraries\MPU6050\MPU6050.cpp:2888:6: note: implicit this pointer type mismatch

 void MPU6050::setXGyroOffset(int16_t offset) {

      ^

C:\Users\maadi\Documents\Arduino\libraries\MPU6050\MPU6050.h:436:7: note: type 'struct MPU6050' itself violates the C++ One Definition Rule

 class MPU6050 {

       ^

C:\Users\maadi\Documents\Arduino\libraries\MPU6050/MPU6050.h:436:7: note: the incompatible type is defined here

 class MPU6050 {

       ^

C:\Users\maadi\Documents\Arduino\libraries\MPU6050\MPU6050.cpp:2888:6: note: 'setXGyroOffset' was previously declared here

 void MPU6050::setXGyroOffset(int16_t offset) {

      ^

C:\Users\maadi\Documents\Arduino\libraries\MPU6050\MPU6050.cpp:2888:6: note: code may be misoptimized unless -fno-strict-aliasing is used

C:\Users\maadi\Documents\Arduino\libraries\MPU6050/MPU6050.h:770:14: warning: 'setYGyroOffset' violates the C++ One Definition Rule  [-Wodr]

         void setYGyroOffset(int16_t offset);

              ^

C:\Users\maadi\Documents\Arduino\libraries\MPU6050\MPU6050.cpp:2898:6: note: implicit this pointer type mismatch

 void MPU6050::setYGyroOffset(int16_t offset) {

      ^

C:\Users\maadi\Documents\Arduino\libraries\MPU6050\MPU6050.h:436:7: note: type 'struct MPU6050' itself violates the C++ One Definition Rule

 class MPU6050 {

       ^

C:\Users\maadi\Documents\Arduino\libraries\MPU6050/MPU6050.h:436:7: note: the incompatible type is defined here

 class MPU6050 {

       ^

C:\Users\maadi\Documents\Arduino\libraries\MPU6050\MPU6050.cpp:2898:6: note: 'setYGyroOffset' was previously declared here

 void MPU6050::setYGyroOffset(int16_t offset) {

      ^

C:\Users\maadi\Documents\Arduino\libraries\MPU6050\MPU6050.cpp:2898:6: note: code may be misoptimized unless -fno-strict-aliasing is used

C:\Users\maadi\Documents\Arduino\libraries\MPU6050/MPU6050.h:774:14: warning: 'setZGyroOffset' violates the C++ One Definition Rule  [-Wodr]

         void setZGyroOffset(int16_t offset);

              ^

C:\Users\maadi\Documents\Arduino\libraries\MPU6050\MPU6050.cpp:2908:6: note: implicit this pointer type mismatch

 void MPU6050::setZGyroOffset(int16_t offset) {

      ^

C:\Users\maadi\Documents\Arduino\libraries\MPU6050\MPU6050.h:436:7: note: type 'struct MPU6050' itself violates the C++ One Definition Rule

 class MPU6050 {

       ^

C:\Users\maadi\Documents\Arduino\libraries\MPU6050/MPU6050.h:436:7: note: the incompatible type is defined here

 class MPU6050 {

       ^

C:\Users\maadi\Documents\Arduino\libraries\MPU6050\MPU6050.cpp:2908:6: note: 'setZGyroOffset' was previously declared here

 void MPU6050::setZGyroOffset(int16_t offset) {

      ^

C:\Users\maadi\Documents\Arduino\libraries\MPU6050\MPU6050.cpp:2908:6: note: code may be misoptimized unless -fno-strict-aliasing is used

C:\Users\maadi\Documents\Arduino\libraries\MPU6050/MPU6050.h:762:14: warning: 'setZAccelOffset' violates the C++ One Definition Rule  [-Wodr]

         void setZAccelOffset(int16_t offset);

              ^

C:\Users\maadi\Documents\Arduino\libraries\MPU6050\MPU6050.cpp:2877:6: note: implicit this pointer type mismatch

 void MPU6050::setZAccelOffset(int16_t offset) {

      ^

C:\Users\maadi\Documents\Arduino\libraries\MPU6050\MPU6050.h:436:7: note: type 'struct MPU6050' itself violates the C++ One Definition Rule

 class MPU6050 {

       ^

C:\Users\maadi\Documents\Arduino\libraries\MPU6050/MPU6050.h:436:7: note: the incompatible type is defined here

 class MPU6050 {

       ^

C:\Users\maadi\Documents\Arduino\libraries\MPU6050\MPU6050.cpp:2877:6: note: 'setZAccelOffset' was previously declared here

 void MPU6050::setZAccelOffset(int16_t offset) {

      ^

C:\Users\maadi\Documents\Arduino\libraries\MPU6050\MPU6050.cpp:2877:6: note: code may be misoptimized unless -fno-strict-aliasing is used

C:\Users\maadi\Documents\Arduino\libraries\MPU6050/MPU6050.h:825:8: warning: 'CalibrateAccel' violates the C++ One Definition Rule  [-Wodr]

   void CalibrateAccel(uint8_t Loops = 15);// Fine tune after setting offsets with less Loops.

        ^

C:\Users\maadi\Documents\Arduino\libraries\MPU6050\MPU6050.cpp:3235:6: note: implicit this pointer type mismatch

 void MPU6050::CalibrateAccel(uint8_t Loops ) {

      ^

C:\Users\maadi\Documents\Arduino\libraries\MPU6050\MPU6050.h:436:7: note: type 'struct MPU6050' itself violates the C++ One Definition Rule

 class MPU6050 {

       ^

C:\Users\maadi\Documents\Arduino\libraries\MPU6050/MPU6050.h:436:7: note: the incompatible type is defined here

 class MPU6050 {

       ^

C:\Users\maadi\Documents\Arduino\libraries\MPU6050\MPU6050.cpp:3235:6: note: 'CalibrateAccel' was previously declared here

 void MPU6050::CalibrateAccel(uint8_t Loops ) {

      ^

C:\Users\maadi\Documents\Arduino\libraries\MPU6050\MPU6050.cpp:3235:6: note: code may be misoptimized unless -fno-strict-aliasing is used

C:\Users\maadi\Documents\Arduino\libraries\MPU6050/MPU6050.h:824:8: warning: 'CalibrateGyro' violates the C++ One Definition Rule  [-Wodr]

   void CalibrateGyro(uint8_t Loops = 15); // Fine tune after setting offsets with less Loops.

        ^

C:\Users\maadi\Documents\Arduino\libraries\MPU6050\MPU6050.cpp:3221:6: note: implicit this pointer type mismatch

 void MPU6050::CalibrateGyro(uint8_t Loops ) {

      ^

C:\Users\maadi\Documents\Arduino\libraries\MPU6050\MPU6050.h:436:7: note: type 'struct MPU6050' itself violates the C++ One Definition Rule

 class MPU6050 {

       ^

C:\Users\maadi\Documents\Arduino\libraries\MPU6050/MPU6050.h:436:7: note: the incompatible type is defined here

 class MPU6050 {

       ^

C:\Users\maadi\Documents\Arduino\libraries\MPU6050\MPU6050.cpp:3221:6: note: 'CalibrateGyro' was previously declared here

 void MPU6050::CalibrateGyro(uint8_t Loops ) {

      ^

C:\Users\maadi\Documents\Arduino\libraries\MPU6050\MPU6050.cpp:3221:6: note: code may be misoptimized unless -fno-strict-aliasing is used

C:\Users\maadi\Documents\Arduino\libraries\MPU6050/MPU6050.h:827:8: warning: 'PrintActiveOffsets' violates the C++ One Definition Rule  [-Wodr]

   void PrintActiveOffsets(); // See the results of the Calibration

        ^

C:\Users\maadi\Documents\Arduino\libraries\MPU6050\MPU6050.cpp:3309:6: note: implicit this pointer type mismatch

 void MPU6050::PrintActiveOffsets() {

      ^

C:\Users\maadi\Documents\Arduino\libraries\MPU6050\MPU6050.h:436:7: note: type 'struct MPU6050' itself violates the C++ One Definition Rule

 class MPU6050 {

       ^

C:\Users\maadi\Documents\Arduino\libraries\MPU6050/MPU6050.h:436:7: note: the incompatible type is defined here

 class MPU6050 {

       ^

C:\Users\maadi\Documents\Arduino\libraries\MPU6050\MPU6050.cpp:3309:6: note: 'PrintActiveOffsets' was previously declared here

 void MPU6050::PrintActiveOffsets() {

      ^

C:\Users\maadi\Documents\Arduino\libraries\MPU6050\MPU6050.cpp:3309:6: note: code may be misoptimized unless -fno-strict-aliasing is used

C:\Users\maadi\Documents\Arduino\libraries\MPU6050/MPU6050.h:718:14: warning: 'getFIFOBytes' violates the C++ One Definition Rule  [-Wodr]

         void getFIFOBytes(uint8_t *data, uint8_t length);

              ^

C:\Users\maadi\Documents\Arduino\libraries\MPU6050\MPU6050.cpp:2736:6: note: implicit this pointer type mismatch

 void MPU6050::getFIFOBytes(uint8_t *data, uint8_t length) {

      ^

C:\Users\maadi\Documents\Arduino\libraries\MPU6050\MPU6050.h:436:7: note: type 'struct MPU6050' itself violates the C++ One Definition Rule

 class MPU6050 {

       ^

C:\Users\maadi\Documents\Arduino\libraries\MPU6050/MPU6050.h:436:7: note: the incompatible type is defined here

 class MPU6050 {

       ^

C:\Users\maadi\Documents\Arduino\libraries\MPU6050\MPU6050.cpp:2736:6: note: 'getFIFOBytes' was previously declared here

 void MPU6050::getFIFOBytes(uint8_t *data, uint8_t length) {

      ^

C:\Users\maadi\Documents\Arduino\libraries\MPU6050\MPU6050.cpp:2736:6: note: code may be misoptimized unless -fno-strict-aliasing is used

C:\Users\maadi\Documents\Arduino\libraries\MPU6050/MPU6050.h:713:18: warning: 'getFIFOCount' violates the C++ One Definition Rule  [-Wodr]

         uint16_t getFIFOCount();

                  ^

C:\Users\maadi\Documents\Arduino\libraries\MPU6050\MPU6050.cpp:2700:10: note: implicit this pointer type mismatch

 uint16_t MPU6050::getFIFOCount() {

          ^

C:\Users\maadi\Documents\Arduino\libraries\MPU6050\MPU6050.h:436:7: note: type 'struct MPU6050' itself violates the C++ One Definition Rule

 class MPU6050 {

       ^

C:\Users\maadi\Documents\Arduino\libraries\MPU6050/MPU6050.h:436:7: note: the incompatible type is defined here

 class MPU6050 {

       ^

C:\Users\maadi\Documents\Arduino\libraries\MPU6050\MPU6050.cpp:2700:10: note: 'getFIFOCount' was previously declared here

 uint16_t MPU6050::getFIFOCount() {

          ^

C:\Users\maadi\Documents\Arduino\libraries\MPU6050\MPU6050.cpp:2700:10: note: code may be misoptimized unless -fno-strict-aliasing is used

C:\Users\maadi\Documents\Arduino\libraries\MPU6050/MPU6050.h:686:14: warning: 'reset' violates the C++ One Definition Rule  [-Wodr]

         void reset();

              ^

C:\Users\maadi\Documents\Arduino\libraries\MPU6050\MPU6050.cpp:2418:6: note: implicit this pointer type mismatch

 void MPU6050::reset() {

      ^

C:\Users\maadi\Documents\Arduino\libraries\MPU6050\MPU6050.h:436:7: note: type 'struct MPU6050' itself violates the C++ One Definition Rule

 class MPU6050 {

       ^

C:\Users\maadi\Documents\Arduino\libraries\MPU6050/MPU6050.h:436:7: note: the incompatible type is defined here

 class MPU6050 {

       ^

C:\Users\maadi\Documents\Arduino\libraries\MPU6050\MPU6050.cpp:2418:6: note: 'reset' was previously declared here

 void MPU6050::reset() {

      ^

C:\Users\maadi\Documents\Arduino\libraries\MPU6050\MPU6050.cpp:2418:6: note: code may be misoptimized unless -fno-strict-aliasing is used

C:\Users\maadi\Documents\Arduino\libraries\MPU6050/MPU6050.h:688:14: warning: 'setSleepEnabled' violates the C++ One Definition Rule  [-Wodr]

         void setSleepEnabled(bool enabled);

              ^

C:\Users\maadi\Documents\Arduino\libraries\MPU6050\MPU6050.cpp:2442:6: note: implicit this pointer type mismatch

 void MPU6050::setSleepEnabled(bool enabled) {

      ^

C:\Users\maadi\Documents\Arduino\libraries\MPU6050\MPU6050.h:436:7: note: type 'struct MPU6050' itself violates the C++ One Definition Rule

 class MPU6050 {

       ^

C:\Users\maadi\Documents\Arduino\libraries\MPU6050/MPU6050.h:436:7: note: the incompatible type is defined here

 class MPU6050 {

       ^

C:\Users\maadi\Documents\Arduino\libraries\MPU6050\MPU6050.cpp:2442:6: note: 'setSleepEnabled' was previously declared here

 void MPU6050::setSleepEnabled(bool enabled) {

      ^

C:\Users\maadi\Documents\Arduino\libraries\MPU6050\MPU6050.cpp:2442:6: note: code may be misoptimized unless -fno-strict-aliasing is used

C:\Users\maadi\Documents\Arduino\libraries\MPU6050/MPU6050.h:803:14: warning: 'setMemoryStartAddress' violates the C++ One Definition Rule  [-Wodr]

         void setMemoryStartAddress(uint8_t address);

              ^

C:\Users\maadi\Documents\Arduino\libraries\MPU6050\MPU6050.cpp:2991:6: note: implicit this pointer type mismatch

 void MPU6050::setMemoryStartAddress(uint8_t address) {

      ^

C:\Users\maadi\Documents\Arduino\libraries\MPU6050\MPU6050.h:436:7: note: type 'struct MPU6050' itself violates the C++ One Definition Rule

 class MPU6050 {

       ^

C:\Users\maadi\Documents\Arduino\libraries\MPU6050/MPU6050.h:436:7: note: the incompatible type is defined here

 class MPU6050 {

       ^

C:\Users\maadi\Documents\Arduino\libraries\MPU6050\MPU6050.cpp:2991:6: note: 'setMemoryStartAddress' was previously declared here

 void MPU6050::setMemoryStartAddress(uint8_t address) {

      ^

C:\Users\maadi\Documents\Arduino\libraries\MPU6050\MPU6050.cpp:2991:6: note: code may be misoptimized unless -fno-strict-aliasing is used

C:\Users\maadi\Documents\Arduino\libraries\MPU6050/MPU6050.h:806:17: warning: 'readMemoryByte' violates the C++ One Definition Rule  [-Wodr]

         uint8_t readMemoryByte();

                 ^

C:\Users\maadi\Documents\Arduino\libraries\MPU6050\MPU6050.cpp:2997:9: note: implicit this pointer type mismatch

 uint8_t MPU6050::readMemoryByte() {

         ^

C:\Users\maadi\Documents\Arduino\libraries\MPU6050\MPU6050.h:436:7: note: type 'struct MPU6050' itself violates the C++ One Definition Rule

 class MPU6050 {

       ^

C:\Users\maadi\Documents\Arduino\libraries\MPU6050/MPU6050.h:436:7: note: the incompatible type is defined here

 class MPU6050 {

       ^

C:\Users\maadi\Documents\Arduino\libraries\MPU6050\MPU6050.cpp:2997:9: note: 'readMemoryByte' was previously declared here

 uint8_t MPU6050::readMemoryByte() {

         ^

C:\Users\maadi\Documents\Arduino\libraries\MPU6050\MPU6050.cpp:2997:9: note: code may be misoptimized unless -fno-strict-aliasing is used

C:\Users\maadi\Documents\Arduino\libraries\MPU6050/MPU6050.h:800:14: warning: 'setMemoryBank' violates the C++ One Definition Rule  [-Wodr]

         void setMemoryBank(uint8_t bank, bool prefetchEnabled=false, bool userBank=false);

              ^

C:\Users\maadi\Documents\Arduino\libraries\MPU6050\MPU6050.cpp:2982:6: note: implicit this pointer type mismatch

 void MPU6050::setMemoryBank(uint8_t bank, bool prefetchEnabled, bool userBank) {

      ^

C:\Users\maadi\Documents\Arduino\libraries\MPU6050\MPU6050.h:436:7: note: type 'struct MPU6050' itself violates the C++ One Definition Rule

 class MPU6050 {

       ^

C:\Users\maadi\Documents\Arduino\libraries\MPU6050/MPU6050.h:436:7: note: the incompatible type is defined here

 class MPU6050 {

       ^

C:\Users\maadi\Documents\Arduino\libraries\MPU6050\MPU6050.cpp:2982:6: note: 'setMemoryBank' was previously declared here

 void MPU6050::setMemoryBank(uint8_t bank, bool prefetchEnabled, bool userBank) {

      ^

C:\Users\maadi\Documents\Arduino\libraries\MPU6050\MPU6050.cpp:2982:6: note: code may be misoptimized unless -fno-strict-aliasing is used

C:\Users\maadi\Documents\Arduino\libraries\MPU6050/MPU6050.h:679:14: warning: 'setI2CMasterModeEnabled' violates the C++ One Definition Rule  [-Wodr]

         void setI2CMasterModeEnabled(bool enabled);

              ^

C:\Users\maadi\Documents\Arduino\libraries\MPU6050\MPU6050.cpp:2367:6: note: implicit this pointer type mismatch

 void MPU6050::setI2CMasterModeEnabled(bool enabled) {

      ^

C:\Users\maadi\Documents\Arduino\libraries\MPU6050\MPU6050.h:436:7: note: type 'struct MPU6050' itself violates the C++ One Definition Rule

 class MPU6050 {

       ^

C:\Users\maadi\Documents\Arduino\libraries\MPU6050/MPU6050.h:436:7: note: the incompatible type is defined here

 class MPU6050 {

       ^

C:\Users\maadi\Documents\Arduino\libraries\MPU6050\MPU6050.cpp:2367:6: note: 'setI2CMasterModeEnabled' was previously declared here

 void MPU6050::setI2CMasterModeEnabled(bool enabled) {

      ^

C:\Users\maadi\Documents\Arduino\libraries\MPU6050\MPU6050.cpp:2367:6: note: code may be misoptimized unless -fno-strict-aliasing is used

C:\Users\maadi\Documents\Arduino\libraries\MPU6050/MPU6050.h:538:14: warning: 'setSlaveAddress' violates the C++ One Definition Rule  [-Wodr]

         void setSlaveAddress(uint8_t num, uint8_t address);

              ^

C:\Users\maadi\Documents\Arduino\libraries\MPU6050\MPU6050.cpp:963:6: note: implicit this pointer type mismatch

 void MPU6050::setSlaveAddress(uint8_t num, uint8_t address) {

      ^

C:\Users\maadi\Documents\Arduino\libraries\MPU6050\MPU6050.h:436:7: note: type 'struct MPU6050' itself violates the C++ One Definition Rule

 class MPU6050 {

       ^

C:\Users\maadi\Documents\Arduino\libraries\MPU6050/MPU6050.h:436:7: note: the incompatible type is defined here

 class MPU6050 {

       ^

C:\Users\maadi\Documents\Arduino\libraries\MPU6050\MPU6050.cpp:963:6: note: 'setSlaveAddress' was previously declared here

 void MPU6050::setSlaveAddress(uint8_t num, uint8_t address) {

      ^

C:\Users\maadi\Documents\Arduino\libraries\MPU6050\MPU6050.cpp:963:6: note: code may be misoptimized unless -fno-strict-aliasing is used

C:\Users\maadi\Documents\Arduino\libraries\MPU6050/MPU6050.h:682:14: warning: 'resetI2CMaster' violates the C++ One Definition Rule  [-Wodr]

         void resetI2CMaster();

              ^

C:\Users\maadi\Documents\Arduino\libraries\MPU6050\MPU6050.cpp:2392:6: note: implicit this pointer type mismatch

 void MPU6050::resetI2CMaster() {

      ^

C:\Users\maadi\Documents\Arduino\libraries\MPU6050\MPU6050.h:436:7: note: type 'struct MPU6050' itself violates the C++ One Definition Rule

 class MPU6050 {

       ^

C:\Users\maadi\Documents\Arduino\libraries\MPU6050/MPU6050.h:436:7: note: the incompatible type is defined here

 class MPU6050 {

       ^

C:\Users\maadi\Documents\Arduino\libraries\MPU6050\MPU6050.cpp:2392:6: note: 'resetI2CMaster' was previously declared here

 void MPU6050::resetI2CMaster() {

      ^

C:\Users\maadi\Documents\Arduino\libraries\MPU6050\MPU6050.cpp:2392:6: note: code may be misoptimized unless -fno-strict-aliasing is used

C:\Users\maadi\Documents\Arduino\libraries\MPU6050/MPU6050.h:694:14: warning: 'setClockSource' violates the C++ One Definition Rule  [-Wodr]

         void setClockSource(uint8_t source);

              ^

C:\Users\maadi\Documents\Arduino\libraries\MPU6050\MPU6050.cpp:2535:6: note: implicit this pointer type mismatch

 void MPU6050::setClockSource(uint8_t source) {

      ^

C:\Users\maadi\Documents\Arduino\libraries\MPU6050\MPU6050.h:436:7: note: type 'struct MPU6050' itself violates the C++ One Definition Rule

 class MPU6050 {

       ^

C:\Users\maadi\Documents\Arduino\libraries\MPU6050/MPU6050.h:436:7: note: the incompatible type is defined here

 class MPU6050 {

       ^

C:\Users\maadi\Documents\Arduino\libraries\MPU6050\MPU6050.cpp:2535:6: note: 'setClockSource' was previously declared here

 void MPU6050::setClockSource(uint8_t source) {

      ^

C:\Users\maadi\Documents\Arduino\libraries\MPU6050\MPU6050.cpp:2535:6: note: code may be misoptimized unless -fno-strict-aliasing is used

C:\Users\maadi\Documents\Arduino\libraries\MPU6050/MPU6050.h:598:14: warning: 'setIntEnabled' violates the C++ One Definition Rule  [-Wodr]

         void setIntEnabled(uint8_t enabled);

              ^

C:\Users\maadi\Documents\Arduino\libraries\MPU6050\MPU6050.cpp:1550:6: note: implicit this pointer type mismatch

 void MPU6050::setIntEnabled(uint8_t enabled) {

      ^

C:\Users\maadi\Documents\Arduino\libraries\MPU6050\MPU6050.h:436:7: note: type 'struct MPU6050' itself violates the C++ One Definition Rule

 class MPU6050 {

       ^

C:\Users\maadi\Documents\Arduino\libraries\MPU6050/MPU6050.h:436:7: note: the incompatible type is defined here

 class MPU6050 {

       ^

C:\Users\maadi\Documents\Arduino\libraries\MPU6050\MPU6050.cpp:1550:6: note: 'setIntEnabled' was previously declared here

 void MPU6050::setIntEnabled(uint8_t enabled) {

      ^

C:\Users\maadi\Documents\Arduino\libraries\MPU6050\MPU6050.cpp:1550:6: note: code may be misoptimized unless -fno-strict-aliasing is used

C:\Users\maadi\Documents\Arduino\libraries\MPU6050/MPU6050.h:449:14: warning: 'setRate' violates the C++ One Definition Rule  [-Wodr]

         void setRate(uint8_t rate);

              ^

C:\Users\maadi\Documents\Arduino\libraries\MPU6050\MPU6050.cpp:125:6: note: implicit this pointer type mismatch

 void MPU6050::setRate(uint8_t rate) {

      ^

C:\Users\maadi\Documents\Arduino\libraries\MPU6050\MPU6050.h:436:7: note: type 'struct MPU6050' itself violates the C++ One Definition Rule

 class MPU6050 {

       ^

C:\Users\maadi\Documents\Arduino\libraries\MPU6050/MPU6050.h:436:7: note: the incompatible type is defined here

 class MPU6050 {

       ^

C:\Users\maadi\Documents\Arduino\libraries\MPU6050\MPU6050.cpp:125:6: note: 'setRate' was previously declared here

 void MPU6050::setRate(uint8_t rate) {

      ^

C:\Users\maadi\Documents\Arduino\libraries\MPU6050\MPU6050.cpp:125:6: note: code may be misoptimized unless -fno-strict-aliasing is used

C:\Users\maadi\Documents\Arduino\libraries\MPU6050/MPU6050.h:453:14: warning: 'setExternalFrameSync' violates the C++ One Definition Rule  [-Wodr]

         void setExternalFrameSync(uint8_t sync);

              ^

C:\Users\maadi\Documents\Arduino\libraries\MPU6050\MPU6050.cpp:167:6: note: implicit this pointer type mismatch

 void MPU6050::setExternalFrameSync(uint8_t sync) {

      ^

C:\Users\maadi\Documents\Arduino\libraries\MPU6050\MPU6050.h:436:7: note: type 'struct MPU6050' itself violates the C++ One Definition Rule

 class MPU6050 {

       ^

C:\Users\maadi\Documents\Arduino\libraries\MPU6050/MPU6050.h:436:7: note: the incompatible type is defined here

 class MPU6050 {

       ^

C:\Users\maadi\Documents\Arduino\libraries\MPU6050\MPU6050.cpp:167:6: note: 'setExternalFrameSync' was previously declared here

 void MPU6050::setExternalFrameSync(uint8_t sync) {

      ^

C:\Users\maadi\Documents\Arduino\libraries\MPU6050\MPU6050.cpp:167:6: note: code may be misoptimized unless -fno-strict-aliasing is used

C:\Users\maadi\Documents\Arduino\libraries\MPU6050/MPU6050.h:455:14: warning: 'setDLPFMode' violates the C++ One Definition Rule  [-Wodr]

         void setDLPFMode(uint8_t bandwidth);

              ^

C:\Users\maadi\Documents\Arduino\libraries\MPU6050\MPU6050.cpp:210:6: note: implicit this pointer type mismatch

 void MPU6050::setDLPFMode(uint8_t mode) {

      ^

C:\Users\maadi\Documents\Arduino\libraries\MPU6050\MPU6050.h:436:7: note: type 'struct MPU6050' itself violates the C++ One Definition Rule

 class MPU6050 {

       ^

C:\Users\maadi\Documents\Arduino\libraries\MPU6050/MPU6050.h:436:7: note: the incompatible type is defined here

 class MPU6050 {

       ^

C:\Users\maadi\Documents\Arduino\libraries\MPU6050\MPU6050.cpp:210:6: note: 'setDLPFMode' was previously declared here

 void MPU6050::setDLPFMode(uint8_t mode) {

      ^

C:\Users\maadi\Documents\Arduino\libraries\MPU6050\MPU6050.cpp:210:6: note: code may be misoptimized unless -fno-strict-aliasing is used

C:\Users\maadi\Documents\Arduino\libraries\MPU6050/MPU6050.h:459:14: warning: 'setFullScaleGyroRange' violates the C++ One Definition Rule  [-Wodr]

         void setFullScaleGyroRange(uint8_t range);

              ^

C:\Users\maadi\Documents\Arduino\libraries\MPU6050\MPU6050.cpp:245:6: note: implicit this pointer type mismatch

 void MPU6050::setFullScaleGyroRange(uint8_t range) {

      ^

C:\Users\maadi\Documents\Arduino\libraries\MPU6050\MPU6050.h:436:7: note: type 'struct MPU6050' itself violates the C++ One Definition Rule

 class MPU6050 {

       ^

C:\Users\maadi\Documents\Arduino\libraries\MPU6050/MPU6050.h:436:7: note: the incompatible type is defined here

 class MPU6050 {

       ^

C:\Users\maadi\Documents\Arduino\libraries\MPU6050\MPU6050.cpp:245:6: note: 'setFullScaleGyroRange' was previously declared here

 void MPU6050::setFullScaleGyroRange(uint8_t range) {

      ^

C:\Users\maadi\Documents\Arduino\libraries\MPU6050\MPU6050.cpp:245:6: note: code may be misoptimized unless -fno-strict-aliasing is used

C:\Users\maadi\Documents\Arduino\libraries\MPU6050/MPU6050.h:810:14: warning: 'writeProgMemoryBlock' violates the C++ One Definition Rule  [-Wodr]

         bool writeProgMemoryBlock(const uint8_t *data, uint16_t dataSize, uint8_t bank=0, uint8_t address=0, bool verify=true);

              ^

C:\Users\maadi\Documents\Arduino\libraries\MPU6050\MPU6050.cpp:3111:6: note: implicit this pointer type mismatch

 bool MPU6050::writeProgMemoryBlock(const uint8_t *data, uint16_t dataSize, uint8_t bank, uint8_t address, bool verify) {

      ^

C:\Users\maadi\Documents\Arduino\libraries\MPU6050\MPU6050.h:436:7: note: type 'struct MPU6050' itself violates the C++ One Definition Rule

 class MPU6050 {

       ^

C:\Users\maadi\Documents\Arduino\libraries\MPU6050/MPU6050.h:436:7: note: the incompatible type is defined here

 class MPU6050 {

       ^

C:\Users\maadi\Documents\Arduino\libraries\MPU6050\MPU6050.cpp:3111:6: note: 'writeProgMemoryBlock' was previously declared here

 bool MPU6050::writeProgMemoryBlock(const uint8_t *data, uint16_t dataSize, uint8_t bank, uint8_t address, bool verify) {

      ^

C:\Users\maadi\Documents\Arduino\libraries\MPU6050\MPU6050.cpp:3111:6: note: code may be misoptimized unless -fno-strict-aliasing is used

C:\Users\maadi\Documents\Arduino\libraries\MPU6050/MPU6050.h:809:14: warning: 'writeMemoryBlock' violates the C++ One Definition Rule  [-Wodr]

         bool writeMemoryBlock(const uint8_t *data, uint16_t dataSize, uint8_t bank=0, uint8_t address=0, bool verify=true, bool useProgMem=false);

              ^

C:\Users\maadi\Documents\Arduino\libraries\MPU6050\MPU6050.cpp:3035:6: note: implicit this pointer type mismatch

 bool MPU6050::writeMemoryBlock(const uint8_t *data, uint16_t dataSize, uint8_t bank, uint8_t address, bool verify, bool useProgMem) {

      ^

C:\Users\maadi\Documents\Arduino\libraries\MPU6050\MPU6050.h:436:7: note: type 'struct MPU6050' itself violates the C++ One Definition Rule

 class MPU6050 {

       ^

C:\Users\maadi\Documents\Arduino\libraries\MPU6050/MPU6050.h:436:7: note: the incompatible type is defined here

 class MPU6050 {

       ^

C:\Users\maadi\Documents\Arduino\libraries\MPU6050\MPU6050.cpp:3035:6: note: 'writeMemoryBlock' was previously declared here

 bool MPU6050::writeMemoryBlock(const uint8_t *data, uint16_t dataSize, uint8_t bank, uint8_t address, bool verify, bool useProgMem) {

      ^

C:\Users\maadi\Documents\Arduino\libraries\MPU6050\MPU6050.cpp:3035:6: note: code may be misoptimized unless -fno-strict-aliasing is used

C:\Users\maadi\Documents\Arduino\libraries\MPU6050/MPU6050.h:817:14: warning: 'setDMPConfig1' violates the C++ One Definition Rule  [-Wodr]

         void setDMPConfig1(uint8_t config);

              ^

C:\Users\maadi\Documents\Arduino\libraries\MPU6050\MPU6050.cpp:3200:6: note: implicit this pointer type mismatch

 void MPU6050::setDMPConfig1(uint8_t config) {

      ^

C:\Users\maadi\Documents\Arduino\libraries\MPU6050\MPU6050.h:436:7: note: type 'struct MPU6050' itself violates the C++ One Definition Rule

 class MPU6050 {

       ^

C:\Users\maadi\Documents\Arduino\libraries\MPU6050/MPU6050.h:436:7: note: the incompatible type is defined here

 class MPU6050 {

       ^

C:\Users\maadi\Documents\Arduino\libraries\MPU6050\MPU6050.cpp:3200:6: note: 'setDMPConfig1' was previously declared here

 void MPU6050::setDMPConfig1(uint8_t config) {

      ^

C:\Users\maadi\Documents\Arduino\libraries\MPU6050\MPU6050.cpp:3200:6: note: code may be misoptimized unless -fno-strict-aliasing is used

C:\Users\maadi\Documents\Arduino\libraries\MPU6050/MPU6050.h:821:14: warning: 'setDMPConfig2' violates the C++ One Definition Rule  [-Wodr]

         void setDMPConfig2(uint8_t config);

              ^

C:\Users\maadi\Documents\Arduino\libraries\MPU6050\MPU6050.cpp:3210:6: note: implicit this pointer type mismatch

 void MPU6050::setDMPConfig2(uint8_t config) {

      ^

C:\Users\maadi\Documents\Arduino\libraries\MPU6050\MPU6050.h:436:7: note: type 'struct MPU6050' itself violates the C++ One Definition Rule

 class MPU6050 {

       ^

C:\Users\maadi\Documents\Arduino\libraries\MPU6050/MPU6050.h:436:7: note: the incompatible type is defined here

 class MPU6050 {

       ^

C:\Users\maadi\Documents\Arduino\libraries\MPU6050\MPU6050.cpp:3210:6: note: 'setDMPConfig2' was previously declared here

 void MPU6050::setDMPConfig2(uint8_t config) {

      ^

C:\Users\maadi\Documents\Arduino\libraries\MPU6050\MPU6050.cpp:3210:6: note: code may be misoptimized unless -fno-strict-aliasing is used

C:\Users\maadi\Documents\Arduino\libraries\MPU6050/MPU6050.h:728:14: warning: 'setOTPBankValid' violates the C++ One Definition Rule  [-Wodr]

         void setOTPBankValid(bool enabled);

              ^

C:\Users\maadi\Documents\Arduino\libraries\MPU6050\MPU6050.cpp:2785:6: note: implicit this pointer type mismatch

 void MPU6050::setOTPBankValid(bool enabled) {

      ^

C:\Users\maadi\Documents\Arduino\libraries\MPU6050\MPU6050.h:436:7: note: type 'struct MPU6050' itself violates the C++ One Definition Rule

 class MPU6050 {

       ^

C:\Users\maadi\Documents\Arduino\libraries\MPU6050/MPU6050.h:436:7: note: the incompatible type is defined here

 class MPU6050 {

       ^

C:\Users\maadi\Documents\Arduino\libraries\MPU6050\MPU6050.cpp:2785:6: note: 'setOTPBankValid' was previously declared here

 void MPU6050::setOTPBankValid(bool enabled) {

      ^

C:\Users\maadi\Documents\Arduino\libraries\MPU6050\MPU6050.cpp:2785:6: note: code may be misoptimized unless -fno-strict-aliasing is used

C:\Users\maadi\Documents\Arduino\libraries\MPU6050/MPU6050.h:492:14: warning: 'setMotionDetectionThreshold' violates the C++ One Definition Rule  [-Wodr]

         void setMotionDetectionThreshold(uint8_t threshold);

              ^

C:\Users\maadi\Documents\Arduino\libraries\MPU6050\MPU6050.cpp:523:6: note: implicit this pointer type mismatch

 void MPU6050::setMotionDetectionThreshold(uint8_t threshold) {

      ^

C:\Users\maadi\Documents\Arduino\libraries\MPU6050\MPU6050.h:436:7: note: type 'struct MPU6050' itself violates the C++ One Definition Rule

 class MPU6050 {

       ^

C:\Users\maadi\Documents\Arduino\libraries\MPU6050/MPU6050.h:436:7: note: the incompatible type is defined here

 class MPU6050 {

       ^

C:\Users\maadi\Documents\Arduino\libraries\MPU6050\MPU6050.cpp:523:6: note: 'setMotionDetectionThreshold' was previously declared here

 void MPU6050::setMotionDetectionThreshold(uint8_t threshold) {

      ^

C:\Users\maadi\Documents\Arduino\libraries\MPU6050\MPU6050.cpp:523:6: note: code may be misoptimized unless -fno-strict-aliasing is used

C:\Users\maadi\Documents\Arduino\libraries\MPU6050/MPU6050.h:500:14: warning: 'setZeroMotionDetectionThreshold' violates the C++ One Definition Rule  [-Wodr]

         void setZeroMotionDetectionThreshold(uint8_t threshold);

              ^

C:\Users\maadi\Documents\Arduino\libraries\MPU6050\MPU6050.cpp:593:6: note: implicit this pointer type mismatch

 void MPU6050::setZeroMotionDetectionThreshold(uint8_t threshold) {

      ^

C:\Users\maadi\Documents\Arduino\libraries\MPU6050\MPU6050.h:436:7: note: type 'struct MPU6050' itself violates the C++ One Definition Rule

 class MPU6050 {

       ^

C:\Users\maadi\Documents\Arduino\libraries\MPU6050/MPU6050.h:436:7: note: the incompatible type is defined here

 class MPU6050 {

       ^

C:\Users\maadi\Documents\Arduino\libraries\MPU6050\MPU6050.cpp:593:6: note: 'setZeroMotionDetectionThreshold' was previously declared here

 void MPU6050::setZeroMotionDetectionThreshold(uint8_t threshold) {

      ^

C:\Users\maadi\Documents\Arduino\libraries\MPU6050\MPU6050.cpp:593:6: note: code may be misoptimized unless -fno-strict-aliasing is used

C:\Users\maadi\Documents\Arduino\libraries\MPU6050/MPU6050.h:496:14: warning: 'setMotionDetectionDuration' violates the C++ One Definition Rule  [-Wodr]

         void setMotionDetectionDuration(uint8_t duration);

              ^

C:\Users\maadi\Documents\Arduino\libraries\MPU6050\MPU6050.cpp:553:6: note: implicit this pointer type mismatch

 void MPU6050::setMotionDetectionDuration(uint8_t duration) {

      ^

C:\Users\maadi\Documents\Arduino\libraries\MPU6050\MPU6050.h:436:7: note: type 'struct MPU6050' itself violates the C++ One Definition Rule

 class MPU6050 {

       ^

C:\Users\maadi\Documents\Arduino\libraries\MPU6050/MPU6050.h:436:7: note: the incompatible type is defined here

 class MPU6050 {

       ^

C:\Users\maadi\Documents\Arduino\libraries\MPU6050\MPU6050.cpp:553:6: note: 'setMotionDetectionDuration' was previously declared here

 void MPU6050::setMotionDetectionDuration(uint8_t duration) {

      ^

C:\Users\maadi\Documents\Arduino\libraries\MPU6050\MPU6050.cpp:553:6: note: code may be misoptimized unless -fno-strict-aliasing is used

C:\Users\maadi\Documents\Arduino\libraries\MPU6050/MPU6050.h:504:14: warning: 'setZeroMotionDetectionDuration' violates the C++ One Definition Rule  [-Wodr]

         void setZeroMotionDetectionDuration(uint8_t duration);

              ^

C:\Users\maadi\Documents\Arduino\libraries\MPU6050\MPU6050.cpp:624:6: note: implicit this pointer type mismatch

 void MPU6050::setZeroMotionDetectionDuration(uint8_t duration) {

      ^

C:\Users\maadi\Documents\Arduino\libraries\MPU6050\MPU6050.h:436:7: note: type 'struct MPU6050' itself violates the C++ One Definition Rule

 class MPU6050 {

       ^

C:\Users\maadi\Documents\Arduino\libraries\MPU6050/MPU6050.h:436:7: note: the incompatible type is defined here

 class MPU6050 {

       ^

C:\Users\maadi\Documents\Arduino\libraries\MPU6050\MPU6050.cpp:624:6: note: 'setZeroMotionDetectionDuration' was previously declared here

 void MPU6050::setZeroMotionDetectionDuration(uint8_t duration) {

      ^

C:\Users\maadi\Documents\Arduino\libraries\MPU6050\MPU6050.cpp:624:6: note: code may be misoptimized unless -fno-strict-aliasing is used

C:\Users\maadi\Documents\Arduino\libraries\MPU6050/MPU6050.h:677:14: warning: 'setFIFOEnabled' violates the C++ One Definition Rule  [-Wodr]

         void setFIFOEnabled(bool enabled);

              ^

C:\Users\maadi\Documents\Arduino\libraries\MPU6050\MPU6050.cpp:2343:6: note: implicit this pointer type mismatch

 void MPU6050::setFIFOEnabled(bool enabled) {

      ^

C:\Users\maadi\Documents\Arduino\libraries\MPU6050\MPU6050.h:436:7: note: type 'struct MPU6050' itself violates the C++ One Definition Rule

 class MPU6050 {

       ^

C:\Users\maadi\Documents\Arduino\libraries\MPU6050/MPU6050.h:436:7: note: the incompatible type is defined here

 class MPU6050 {

       ^

C:\Users\maadi\Documents\Arduino\libraries\MPU6050\MPU6050.cpp:2343:6: note: 'setFIFOEnabled' was previously declared here

 void MPU6050::setFIFOEnabled(bool enabled) {

      ^

C:\Users\maadi\Documents\Arduino\libraries\MPU6050\MPU6050.cpp:2343:6: note: code may be misoptimized unless -fno-strict-aliasing is used

C:\Users\maadi\Documents\Arduino\libraries\MPU6050/MPU6050.h:797:14: warning: 'resetDMP' violates the C++ One Definition Rule  [-Wodr]

         void resetDMP();

              ^

C:\Users\maadi\Documents\Arduino\libraries\MPU6050\MPU6050.cpp:2976:6: note: implicit this pointer type mismatch

 void MPU6050::resetDMP() {

      ^

C:\Users\maadi\Documents\Arduino\libraries\MPU6050\MPU6050.h:436:7: note: type 'struct MPU6050' itself violates the C++ One Definition Rule

 class MPU6050 {

       ^

C:\Users\maadi\Documents\Arduino\libraries\MPU6050/MPU6050.h:436:7: note: the incompatible type is defined here

 class MPU6050 {

       ^

C:\Users\maadi\Documents\Arduino\libraries\MPU6050\MPU6050.cpp:2976:6: note: 'resetDMP' was previously declared here

 void MPU6050::resetDMP() {

      ^

C:\Users\maadi\Documents\Arduino\libraries\MPU6050\MPU6050.cpp:2976:6: note: code may be misoptimized unless -fno-strict-aliasing is used

C:\Users\maadi\Documents\Arduino\libraries\MPU6050/MPU6050.h:796:14: warning: 'setDMPEnabled' violates the C++ One Definition Rule  [-Wodr]

         void setDMPEnabled(bool enabled);

              ^

C:\Users\maadi\Documents\Arduino\libraries\MPU6050\MPU6050.cpp:2973:6: note: implicit this pointer type mismatch

 void MPU6050::setDMPEnabled(bool enabled) {

      ^

C:\Users\maadi\Documents\Arduino\libraries\MPU6050\MPU6050.h:436:7: note: type 'struct MPU6050' itself violates the C++ One Definition Rule

 class MPU6050 {

       ^

C:\Users\maadi\Documents\Arduino\libraries\MPU6050/MPU6050.h:436:7: note: the incompatible type is defined here

 class MPU6050 {

       ^

C:\Users\maadi\Documents\Arduino\libraries\MPU6050\MPU6050.cpp:2973:6: note: 'setDMPEnabled' was previously declared here

 void MPU6050::setDMPEnabled(bool enabled) {

      ^

C:\Users\maadi\Documents\Arduino\libraries\MPU6050\MPU6050.cpp:2973:6: note: code may be misoptimized unless -fno-strict-aliasing is used

C:\Users\maadi\Documents\Arduino\libraries\MPU6050/MPU6050.h:681:14: warning: 'resetFIFO' violates the C++ One Definition Rule  [-Wodr]

         void resetFIFO();

              ^

C:\Users\maadi\Documents\Arduino\libraries\MPU6050\MPU6050.cpp:2383:6: note: implicit this pointer type mismatch

 void MPU6050::resetFIFO() {

      ^

C:\Users\maadi\Documents\Arduino\libraries\MPU6050\MPU6050.h:436:7: note: type 'struct MPU6050' itself violates the C++ One Definition Rule

 class MPU6050 {

       ^

C:\Users\maadi\Documents\Arduino\libraries\MPU6050/MPU6050.h:436:7: note: the incompatible type is defined here

 class MPU6050 {

       ^

C:\Users\maadi\Documents\Arduino\libraries\MPU6050\MPU6050.cpp:2383:6: note: 'resetFIFO' was previously declared here

 void MPU6050::resetFIFO() {

      ^

C:\Users\maadi\Documents\Arduino\libraries\MPU6050\MPU6050.cpp:2383:6: note: code may be misoptimized unless -fno-strict-aliasing is used

C:\Users\maadi\Documents\Arduino\libraries\MPU6050/MPU6050.h:613:17: warning: 'getIntStatus' violates the C++ One Definition Rule  [-Wodr]

         uint8_t getIntStatus();

                 ^

C:\Users\maadi\Documents\Arduino\libraries\MPU6050\MPU6050.cpp:1679:9: note: implicit this pointer type mismatch

 uint8_t MPU6050::getIntStatus() {

         ^

C:\Users\maadi\Documents\Arduino\libraries\MPU6050\MPU6050.h:436:7: note: type 'struct MPU6050' itself violates the C++ One Definition Rule

 class MPU6050 {

       ^

C:\Users\maadi\Documents\Arduino\libraries\MPU6050/MPU6050.h:436:7: note: the incompatible type is defined here

 class MPU6050 {

       ^

C:\Users\maadi\Documents\Arduino\libraries\MPU6050\MPU6050.cpp:1679:9: note: 'getIntStatus' was previously declared here

 uint8_t MPU6050::getIntStatus() {

         ^

C:\Users\maadi\Documents\Arduino\libraries\MPU6050\MPU6050.cpp:1679:9: note: code may be misoptimized unless -fno-strict-aliasing is used

C:\Users\maadi\Documents\Arduino\libraries\MPU6050/MPU6050.h:438:9: warning: '__comp_ctor ' violates the C++ One Definition Rule  [-Wodr]

         MPU6050(uint8_t address=MPU6050_DEFAULT_ADDRESS);

         ^

C:\Users\maadi\Documents\Arduino\libraries\MPU6050\MPU6050.cpp:46:1: note: implicit this pointer type mismatch

 MPU6050::MPU6050(uint8_t address):devAddr(address) {

 ^

C:\Users\maadi\Documents\Arduino\libraries\MPU6050\MPU6050.h:436:7: note: type 'struct MPU6050' itself violates the C++ One Definition Rule

 class MPU6050 {

       ^

C:\Users\maadi\Documents\Arduino\libraries\MPU6050/MPU6050.h:436:7: note: the incompatible type is defined here

 class MPU6050 {

       ^

C:\Users\maadi\Documents\Arduino\libraries\MPU6050\MPU6050.cpp:46:1: note: '__comp_ctor ' was previously declared here

 MPU6050::MPU6050(uint8_t address):devAddr(address) {

 ^

C:\Users\maadi\Documents\Arduino\libraries\MPU6050\MPU6050.cpp:46:1: note: code may be misoptimized unless -fno-strict-aliasing is used
 

Any suggestions?

 

Thanks.

Link to comment
Share on other sites

  • 11 months later...

I had a similar problem. I resolved it my adding the i2cdev and mpu6050 library folders to the MY DOCUMENTS/ARDUINO/LIBRARIES FOLDER.

For some reason they need to be there even if they exist in the library folder of ARDUINO residing in the Program Files Folder.

 

Link to comment
Share on other sites

  • 6 months later...
  • 2 months later...

Hi....It appears as though the issue was with the document ways for the libraries on my windows 10 PC. I downloaded an adjusting robot sketch that utilizes similar libraries as the MPU6050_DMP6 sketch and it assembled with practically no issues. I then, at that point, subbed the MPU6050_DMP_6 sketch and it likewise ordered with practically no issues.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
 Share

×
×
  • Create New...