SparkFun_CCS811_Arduino_Library
SparkFun_CCS811_Arduino_Library copied to clipboard
Can't compile on new Arduino SAMD Cores
As of new Arduino SAMD Cores >= 1.8.12 (tested), there is a change that doesn't allow to compile this library. Below there is the outcome of the compilation of the basic example while doing so with version 1.8.12
(1.8.13
is the same). We will do a PR as the fix is quite simple.
In file included from /home/oscar/.arduino15/packages/arduino/tools/CMSIS-Atmel/1.2.0/CMSIS/Device/ATMEL/samd21/include/samd21.h:69:0,
from /home/oscar/.arduino15/packages/arduino/tools/CMSIS-Atmel/1.2.0/CMSIS/Device/ATMEL/samd.h:105,
from /home/oscar/.arduino15/packages/arduino/hardware/samd/1.8.12/cores/arduino/WVariant.h:22,
from /home/oscar/.arduino15/packages/arduino/hardware/samd/1.8.12/variants/arduino_zero/variant.h:39,
from /home/oscar/.arduino15/packages/arduino/hardware/samd/1.8.12/libraries/Wire/Wire.h:24,
from /home/oscar/Arduino/libraries/SparkFun_CCS811_Arduino_Library/src/SparkFunCCS811.h:31,
from /home/oscar/Arduino/libraries/SparkFun_CCS811_Arduino_Library/src/SparkFunCCS811.cpp:29:
/home/oscar/.arduino15/packages/arduino/tools/CMSIS-Atmel/1.2.0/CMSIS/Device/ATMEL/samd21/include/samd21g18a.h:226:0: warning: "LITTLE_ENDIAN" redefined
#define LITTLE_ENDIAN 1
In file included from /home/oscar/.arduino15/packages/arduino/tools/arm-none-eabi-gcc/7-2017q4/arm-none-eabi/include/sys/types.h:67:0,
from /home/oscar/.arduino15/packages/arduino/tools/arm-none-eabi-gcc/7-2017q4/arm-none-eabi/include/stdio.h:61,
from /home/oscar/.arduino15/packages/arduino/hardware/samd/1.8.12/cores/arduino/api/Print.h:22,
from /home/oscar/.arduino15/packages/arduino/hardware/samd/1.8.12/cores/arduino/api/Stream.h:25,
from /home/oscar/.arduino15/packages/arduino/hardware/samd/1.8.12/cores/arduino/api/HardwareI2C.h:22,
from /home/oscar/.arduino15/packages/arduino/hardware/samd/1.8.12/libraries/Wire/Wire.h:23,
from /home/oscar/Arduino/libraries/SparkFun_CCS811_Arduino_Library/src/SparkFunCCS811.h:31,
from /home/oscar/Arduino/libraries/SparkFun_CCS811_Arduino_Library/src/SparkFunCCS811.cpp:29:
/home/oscar/.arduino15/packages/arduino/tools/arm-none-eabi-gcc/7-2017q4/arm-none-eabi/include/machine/endian.h:17:0: note: this is the location of the previous definition
#define LITTLE_ENDIAN _LITTLE_ENDIAN
In file included from /home/oscar/Arduino/libraries/SparkFun_CCS811_Arduino_Library/src/SparkFunCCS811.cpp:29:0:
/home/oscar/Arduino/libraries/SparkFun_CCS811_Arduino_Library/src/SparkFunCCS811.h:76:28: error: 'TwoWire' has not been declared
CCS811_Status_e beginCore(TwoWire &wirePort);
^~~~~~~
/home/oscar/Arduino/libraries/SparkFun_CCS811_Arduino_Library/src/SparkFunCCS811.h:96:2: error: 'TwoWire' does not name a type; did you mean 'TwoWire_h'?
TwoWire *_i2cPort; //The generic connection to user's chosen I2C hardware
^~~~~~~
TwoWire_h
/home/oscar/Arduino/libraries/SparkFun_CCS811_Arduino_Library/src/SparkFunCCS811.h:112:13: error: 'TwoWire' has not been declared
bool begin(TwoWire &wirePort = Wire); //Use the Wire hardware by default
^~~~~~~
/home/oscar/Arduino/libraries/SparkFun_CCS811_Arduino_Library/src/SparkFunCCS811.h:113:34: error: 'TwoWire' has not been declared
CCS811_Status_e beginWithStatus(TwoWire &wirePort = Wire); //Use the Wire hardware by default
^~~~~~~
/home/oscar/Arduino/libraries/SparkFun_CCS811_Arduino_Library/src/SparkFunCCS811.h:112:33: error: could not convert 'Wire' from 'arduino::TwoWire' to 'int&'
bool begin(TwoWire &wirePort = Wire); //Use the Wire hardware by default
^~~~
/home/oscar/Arduino/libraries/SparkFun_CCS811_Arduino_Library/src/SparkFunCCS811.h:113:54: error: could not convert 'Wire' from 'arduino::TwoWire' to 'int&'
CCS811_Status_e beginWithStatus(TwoWire &wirePort = Wire); //Use the Wire hardware by default
^~~~
/home/oscar/Arduino/libraries/SparkFun_CCS811_Arduino_Library/src/SparkFunCCS811.cpp:47:29: error: prototype for 'CCS811Core::CCS811_Status_e CCS811Core::beginCore(arduino::TwoWire&)' does not match any in class 'CCS811Core'
CCS811Core::CCS811_Status_e CCS811Core::beginCore(TwoWire &wirePort)
^~~~~~~~~~
In file included from /home/oscar/Arduino/libraries/SparkFun_CCS811_Arduino_Library/src/SparkFunCCS811.cpp:29:0:
/home/oscar/Arduino/libraries/SparkFun_CCS811_Arduino_Library/src/SparkFunCCS811.h:76:18: error: candidate is: CCS811Core::CCS811_Status_e CCS811Core::beginCore(int&)
CCS811_Status_e beginCore(TwoWire &wirePort);
^~~~~~~~~
/home/oscar/Arduino/libraries/SparkFun_CCS811_Arduino_Library/src/SparkFunCCS811.cpp: In member function 'CCS811Core::CCS811_Status_e CCS811Core::readRegister(uint8_t, uint8_t*)':
/home/oscar/Arduino/libraries/SparkFun_CCS811_Arduino_Library/src/SparkFunCCS811.cpp:103:2: error: '_i2cPort' was not declared in this scope
_i2cPort->beginTransmission(I2CAddress);
^~~~~~~~
/home/oscar/Arduino/libraries/SparkFun_CCS811_Arduino_Library/src/SparkFunCCS811.cpp:103:2: note: suggested alternative: 'Port'
_i2cPort->beginTransmission(I2CAddress);
^~~~~~~~
Port
/home/oscar/Arduino/libraries/SparkFun_CCS811_Arduino_Library/src/SparkFunCCS811.cpp: In member function 'CCS811Core::CCS811_Status_e CCS811Core::multiReadRegister(uint8_t, uint8_t*, uint8_t)':
/home/oscar/Arduino/libraries/SparkFun_CCS811_Arduino_Library/src/SparkFunCCS811.cpp:139:2: error: '_i2cPort' was not declared in this scope
_i2cPort->beginTransmission(I2CAddress);
^~~~~~~~
/home/oscar/Arduino/libraries/SparkFun_CCS811_Arduino_Library/src/SparkFunCCS811.cpp:139:2: note: suggested alternative: 'Port'
_i2cPort->beginTransmission(I2CAddress);
^~~~~~~~
Port
/home/oscar/Arduino/libraries/SparkFun_CCS811_Arduino_Library/src/SparkFunCCS811.cpp: In member function 'CCS811Core::CCS811_Status_e CCS811Core::writeRegister(uint8_t, uint8_t)':
/home/oscar/Arduino/libraries/SparkFun_CCS811_Arduino_Library/src/SparkFunCCS811.cpp:174:2: error: '_i2cPort' was not declared in this scope
_i2cPort->beginTransmission(I2CAddress);
^~~~~~~~
/home/oscar/Arduino/libraries/SparkFun_CCS811_Arduino_Library/src/SparkFunCCS811.cpp:174:2: note: suggested alternative: 'Port'
_i2cPort->beginTransmission(I2CAddress);
^~~~~~~~
Port
/home/oscar/Arduino/libraries/SparkFun_CCS811_Arduino_Library/src/SparkFunCCS811.cpp: In member function 'CCS811Core::CCS811_Status_e CCS811Core::multiWriteRegister(uint8_t, uint8_t*, uint8_t)':
/home/oscar/Arduino/libraries/SparkFun_CCS811_Arduino_Library/src/SparkFunCCS811.cpp:205:2: error: '_i2cPort' was not declared in this scope
_i2cPort->beginTransmission(I2CAddress);
^~~~~~~~
/home/oscar/Arduino/libraries/SparkFun_CCS811_Arduino_Library/src/SparkFunCCS811.cpp:205:2: note: suggested alternative: 'Port'
_i2cPort->beginTransmission(I2CAddress);
^~~~~~~~
Port
/home/oscar/Arduino/libraries/SparkFun_CCS811_Arduino_Library/src/SparkFunCCS811.cpp: At global scope:
/home/oscar/Arduino/libraries/SparkFun_CCS811_Arduino_Library/src/SparkFunCCS811.cpp:244:6: error: prototype for 'bool CCS811::begin(arduino::TwoWire&)' does not match any in class 'CCS811'
bool CCS811::begin(TwoWire &wirePort)
^~~~~~
In file included from /home/oscar/Arduino/libraries/SparkFun_CCS811_Arduino_Library/src/SparkFunCCS811.cpp:29:0:
/home/oscar/Arduino/libraries/SparkFun_CCS811_Arduino_Library/src/SparkFunCCS811.h:112:7: error: candidate is: bool CCS811::begin(int&)
bool begin(TwoWire &wirePort = Wire); //Use the Wire hardware by default
^~~~~
/home/oscar/Arduino/libraries/SparkFun_CCS811_Arduino_Library/src/SparkFunCCS811.cpp:258:29: error: prototype for 'CCS811Core::CCS811_Status_e CCS811::beginWithStatus(arduino::TwoWire&)' does not match any in class 'CCS811'
CCS811Core::CCS811_Status_e CCS811::beginWithStatus(TwoWire &wirePort)
^~~~~~
In file included from /home/oscar/Arduino/libraries/SparkFun_CCS811_Arduino_Library/src/SparkFunCCS811.cpp:29:0:
/home/oscar/Arduino/libraries/SparkFun_CCS811_Arduino_Library/src/SparkFunCCS811.h:113:18: error: candidate is: CCS811Core::CCS811_Status_e CCS811::beginWithStatus(int&)
CCS811_Status_e beginWithStatus(TwoWire &wirePort = Wire); //Use the Wire hardware by default
^~~~~~~~~~~~~~~
exit status 1