So I was trying to get everything up and running finally after taking a break from this project and I reloaded the firmware I was using and I now have an error message that wasn't there before. I recopied the libraries for some reason and everything is off. Let me know how to fix this if anyone knows. Thank you in advance.
Using previously compiled file: C:\Users\Rob\AppData\Local\Temp\arduino_build_781390\sketch\myBoards.cpp.o
C:\Users\Rob\Documents\Arduino\myFP2_DRV8825HW203_310\myFP2_DRV8825HW203_310.ino: In function 'void loop()':
C:\Users\Rob\Documents\Arduino\myFP2_DRV8825HW203_310\myFP2_DRV8825HW203_310.ino:730:15: warning: variable 'stepstaken' set but not used [-Wunused-but-set-variable]
static byte stepstaken = 0;
^~~~~~~~~~
Compiling libraries...
Compiling library "myQueue"
Compiling library "myEEPROM"
Compiling library "Wire"
Using previously compiled file: C:\Users\Rob\AppData\Local\Temp\arduino_build_781390\libraries\Wire\Wire.cpp.o
Using previously compiled file: C:\Users\Rob\AppData\Local\Temp\arduino_build_781390\libraries\Wire\utility\twi.c.o
Compiling library "myOLED"
Using previously compiled file: C:\Users\Rob\AppData\Local\Temp\arduino_build_781390\libraries\myOLED\mySSD1306Ascii.cpp.o
Compiling library "OneWire"
Using previously compiled file: C:\Users\Rob\AppData\Local\Temp\arduino_build_781390\libraries\OneWire\OneWire.cpp.o
Compiling library "myDallasTemperature"
Using previously compiled file: C:\Users\Rob\AppData\Local\Temp\arduino_build_781390\libraries\myDallasTemperature\myDallasTemperature.cpp.o
Compiling core...
Using precompiled core: C:\Users\Rob\AppData\Local\Temp\arduino_cache_80339\core\core_arduino_avr_nano_cpu_atmega328old_0c812875ac70eb4a9b385d8fb077f54c.a
C:\Users\Rob\Documents\Arduino\libraries\OneWire/OneWire.h:62:7: warning: type 'struct OneWire' violates the C++ One Definition Rule [-Wodr]
class OneWire
^
C:\Users\Rob\Documents\Arduino\libraries\OneWire\OneWire.h:57:7: note: a different type is defined in another translation unit
#endif
^
C:\Users\Rob\Documents\Arduino\libraries\OneWire/OneWire.h:73:13: note: the first difference of corresponding definitions is field 'LastDeviceFlag'
uint8_t LastDeviceFlag;
^
C:\Users\Rob\Documents\Arduino\libraries\OneWire\OneWire.h:68:10: note: a field of same name but different type is defined in another translation unit
#if ONEWIRE_SEARCH
^
c:\program files (x86)\arduino\hardware\tools\avr\avr\include\stdint.h:126:22: note: type 'uint8_t' should match type 'bool'
typedef unsigned int uint8_t attribute((mode(QI)));
^
C:\Users\Rob\Documents\Arduino\libraries\myDallasTemperature/myDallasTemperature.h:58:7: warning: type 'struct DallasTemperature' violates the C++ One Definition Rule [-Wodr]
class DallasTemperature
^
C:\Users\Rob\Documents\Arduino\libraries\myDallasTemperature\myDallasTemperature.h:58:7: note: a different type is defined in another translation unit
class DallasTemperature
^
C:\Users\Rob\Documents\Arduino\libraries\myDallasTemperature/myDallasTemperature.h:189:14: note: the first difference of corresponding definitions is field '_wire'
OneWire*_wire;^
C:\Users\Rob\Documents\Arduino\libraries\myDallasTemperature\myDallasTemperature.h:189:14: note: a field of same name but different type is defined in another translation unit
OneWire*_wire;^
C:\Users\Rob\Documents\Arduino\libraries\OneWire/OneWire.h:62:7: note: type 'struct OneWire' itself violates the C++ One Definition Rule
class OneWire
^
C:\Users\Rob\Documents\Arduino\libraries\OneWire\OneWire.h:57:7: note: the incompatible type is defined here
#endif
^
C:\Users\Rob\Documents\Arduino\libraries\myDallasTemperature/myDallasTemperature.h:63:5: warning: '__comp_ctor ' violates the C++ One Definition Rule [-Wodr]
DallasTemperature(OneWire*);
^
C:\Users\Rob\Documents\Arduino\libraries\myDallasTemperature\myDallasTemperature.cpp:14:1: note: implicit this pointer type mismatch
C:\Users\Rob\Documents\Arduino\libraries\myDallasTemperature\myDallasTemperature.h:58:7: note: type 'struct DallasTemperature' itself violates the C++ One Definition Rule
class DallasTemperature
^
C:\Users\Rob\Documents\Arduino\libraries\myDallasTemperature/myDallasTemperature.h:58:7: note: the incompatible type is defined here
class DallasTemperature
^
C:\Users\Rob\Documents\Arduino\libraries\myDallasTemperature\myDallasTemperature.cpp:14:1: note: '__comp_ctor ' was previously declared here
C:\Users\Rob\Documents\Arduino\libraries\myDallasTemperature\myDallasTemperature.cpp:14:1: note: code may be misoptimized unless -fno-strict-aliasing is used
C:\Users\Rob\Documents\Arduino\libraries\myDallasTemperature/myDallasTemperature.h:137:11: warning: 'getTempCByIndex' violates the C++ One Definition Rule [-Wodr]
float getTempCByIndex(uint8_t);
^
C:\Users\Rob\Documents\Arduino\libraries\myDallasTemperature\myDallasTemperature.cpp:383:7: note: implicit this pointer type mismatch
C:\Users\Rob\Documents\Arduino\libraries\myDallasTemperature\myDallasTemperature.h:58:7: note: type 'struct DallasTemperature' itself violates the C++ One Definition Rule
class DallasTemperature
^
C:\Users\Rob\Documents\Arduino\libraries\myDallasTemperature/myDallasTemperature.h:58:7: note: the incompatible type is defined here
class DallasTemperature
^
C:\Users\Rob\Documents\Arduino\libraries\myDallasTemperature\myDallasTemperature.cpp:383:7: note: 'getTempCByIndex' was previously declared here
C:\Users\Rob\Documents\Arduino\libraries\myDallasTemperature/myDallasTemperature.h:68:10: warning: 'begin' violates the C++ One Definition Rule [-Wodr]
void begin(void);
^
C:\Users\Rob\Documents\Arduino\libraries\myDallasTemperature\myDallasTemperature.cpp:47:6: note: implicit this pointer type mismatch
void DallasTemperature::begin(void){
^
C:\Users\Rob\Documents\Arduino\libraries\myDallasTemperature\myDallasTemperature.h:58:7: note: type 'struct DallasTemperature' itself violates the C++ One Definition Rule
class DallasTemperature
^
C:\Users\Rob\Documents\Arduino\libraries\myDallasTemperature/myDallasTemperature.h:58:7: note: the incompatible type is defined here
class DallasTemperature
^
C:\Users\Rob\Documents\Arduino\libraries\myDallasTemperature\myDallasTemperature.cpp:47:6: note: 'begin' was previously declared here
void DallasTemperature::begin(void){
^
C:\Users\Rob\Documents\Arduino\libraries\myDallasTemperature/myDallasTemperature.h:71:13: warning: 'getDeviceCount' violates the C++ One Definition Rule [-Wodr]
uint8_t getDeviceCount(void);
^
C:\Users\Rob\Documents\Arduino\libraries\myDallasTemperature\myDallasTemperature.cpp:73:9: note: implicit this pointer type mismatch
uint8_t DallasTemperature::getDeviceCount(void){
^
C:\Users\Rob\Documents\Arduino\libraries\myDallasTemperature\myDallasTemperature.h:58:7: note: type 'struct DallasTemperature' itself violates the C++ One Definition Rule
class DallasTemperature
^
C:\Users\Rob\Documents\Arduino\libraries\myDallasTemperature/myDallasTemperature.h:58:7: note: the incompatible type is defined here
class DallasTemperature
^
C:\Users\Rob\Documents\Arduino\libraries\myDallasTemperature\myDallasTemperature.cpp:73:9: note: 'getDeviceCount' was previously declared here
uint8_t DallasTemperature::getDeviceCount(void){
^
C:\Users\Rob\Documents\Arduino\libraries\myDallasTemperature/myDallasTemperature.h:80:10: warning: 'getAddress' violates the C++ One Definition Rule [-Wodr]
bool getAddress(uint8_t*, uint8_t);
^
C:\Users\Rob\Documents\Arduino\libraries\myDallasTemperature\myDallasTemperature.cpp:84:6: note: implicit this pointer type mismatch
C:\Users\Rob\Documents\Arduino\libraries\myDallasTemperature\myDallasTemperature.h:58:7: note: type 'struct DallasTemperature' itself violates the C++ One Definition Rule
class DallasTemperature
^
C:\Users\Rob\Documents\Arduino\libraries\myDallasTemperature/myDallasTemperature.h:58:7: note: the incompatible type is defined here
class DallasTemperature
^
C:\Users\Rob\Documents\Arduino\libraries\myDallasTemperature\myDallasTemperature.cpp:84:6: note: 'getAddress' was previously declared here
C:\Users\Rob\Documents\Arduino\libraries\myDallasTemperature/myDallasTemperature.h:119:10: warning: 'requestTemperatures' violates the C++ One Definition Rule [-Wodr]
void requestTemperatures(void);
^
C:\Users\Rob\Documents\Arduino\libraries\myDallasTemperature\myDallasTemperature.cpp:302:6: note: implicit this pointer type mismatch
void DallasTemperature::requestTemperatures(){
^
C:\Users\Rob\Documents\Arduino\libraries\myDallasTemperature\myDallasTemperature.h:58:7: note: type 'struct DallasTemperature' itself violates the C++ One Definition Rule
class DallasTemperature
^
C:\Users\Rob\Documents\Arduino\libraries\myDallasTemperature/myDallasTemperature.h:58:7: note: the incompatible type is defined here
class DallasTemperature
^
C:\Users\Rob\Documents\Arduino\libraries\myDallasTemperature\myDallasTemperature.cpp:302:6: note: 'requestTemperatures' was previously declared here
void DallasTemperature::requestTemperatures(){
^
C:\Users\Rob\Documents\Arduino\libraries\myDallasTemperature/myDallasTemperature.h:108:10: warning: 'setResolution' violates the C++ One Definition Rule [-Wodr]
boolsetResolution(constuint8_t*,uint8_t);^
C:\Users\Rob\Documents\Arduino\libraries\myDallasTemperature\myDallasTemperature.cpp:198:6: note: implicit this pointer type mismatch
C:\Users\Rob\Documents\Arduino\libraries\myDallasTemperature\myDallasTemperature.h:58:7: note: type 'struct DallasTemperature' itself violates the C++ One Definition Rule
class DallasTemperature
^
C:\Users\Rob\Documents\Arduino\libraries\myDallasTemperature/myDallasTemperature.h:58:7: note: the incompatible type is defined here
class DallasTemperature
^
C:\Users\Rob\Documents\Arduino\libraries\myDallasTemperature\myDallasTemperature.cpp:198:6: note: 'setResolution' was previously declared here
The issue is around linking
collect2.exe: error: ld returned 1 exit status
This sometimes occurs when you compile the firmware. What happens is the Arduino IDE compiles all the libraies, the firmware and then attempts to put everything together.
It writes all of these to a temporary folder. Sometimes when you recompile, make a change, recompile etc the arduino ide attempts to reuse some of those objects that were compiled previously.
In general, this error can be overcome by the following things
1. exit the arduino IDE and delete all temporary files, then try again
2. Sometimes a configuration option in the focuserconfig.h file might prevent the compile from succeeding. Disable all options and recompile. Add each option 1 at a time, recompiling after each change.
We are now on firmware v312.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
So I was trying to get everything up and running finally after taking a break from this project and I reloaded the firmware I was using and I now have an error message that wasn't there before. I recopied the libraries for some reason and everything is off. Let me know how to fix this if anyone knows. Thank you in advance.
Arduino: 1.8.15 (Windows 10), Board: "Arduino Nano, ATmega328P (Old Bootloader)"
C:\Program Files (x86)\Arduino\arduino-builder -dump-prefs -logger=machine -hardware C:\Program Files (x86)\Arduino\hardware -tools C:\Program Files (x86)\Arduino\tools-builder -tools C:\Program Files (x86)\Arduino\hardware\tools\avr -built-in-libraries C:\Program Files (x86)\Arduino\libraries -libraries C:\Users\Rob\Documents\Arduino\libraries -fqbn=arduino:avr:nano:cpu=atmega328old -vid-pid=1A86_7523 -ide-version=10815 -build-path C:\Users\Rob\AppData\Local\Temp\arduino_build_781390 -warnings=all -build-cache C:\Users\Rob\AppData\Local\Temp\arduino_cache_80339 -prefs=build.warn_data_percentage=75 -prefs=runtime.tools.avr-gcc.path=C:\Program Files (x86)\Arduino\hardware\tools\avr -prefs=runtime.tools.avr-gcc-7.3.0-atmel3.6.1-arduino7.path=C:\Program Files (x86)\Arduino\hardware\tools\avr -prefs=runtime.tools.arduinoOTA.path=C:\Program Files (x86)\Arduino\hardware\tools\avr -prefs=runtime.tools.arduinoOTA-1.3.0.path=C:\Program Files (x86)\Arduino\hardware\tools\avr -prefs=runtime.tools.avrdude.path=C:\Program Files (x86)\Arduino\hardware\tools\avr -prefs=runtime.tools.avrdude-6.3.0-arduino17.path=C:\Program Files (x86)\Arduino\hardware\tools\avr -verbose C:\Users\Rob\Documents\Arduino\myFP2_DRV8825HW203_310\myFP2_DRV8825HW203_310.ino
C:\Program Files (x86)\Arduino\arduino-builder -compile -logger=machine -hardware C:\Program Files (x86)\Arduino\hardware -tools C:\Program Files (x86)\Arduino\tools-builder -tools C:\Program Files (x86)\Arduino\hardware\tools\avr -built-in-libraries C:\Program Files (x86)\Arduino\libraries -libraries C:\Users\Rob\Documents\Arduino\libraries -fqbn=arduino:avr:nano:cpu=atmega328old -vid-pid=1A86_7523 -ide-version=10815 -build-path C:\Users\Rob\AppData\Local\Temp\arduino_build_781390 -warnings=all -build-cache C:\Users\Rob\AppData\Local\Temp\arduino_cache_80339 -prefs=build.warn_data_percentage=75 -prefs=runtime.tools.avr-gcc.path=C:\Program Files (x86)\Arduino\hardware\tools\avr -prefs=runtime.tools.avr-gcc-7.3.0-atmel3.6.1-arduino7.path=C:\Program Files (x86)\Arduino\hardware\tools\avr -prefs=runtime.tools.arduinoOTA.path=C:\Program Files (x86)\Arduino\hardware\tools\avr -prefs=runtime.tools.arduinoOTA-1.3.0.path=C:\Program Files (x86)\Arduino\hardware\tools\avr -prefs=runtime.tools.avrdude.path=C:\Program Files (x86)\Arduino\hardware\tools\avr -prefs=runtime.tools.avrdude-6.3.0-arduino17.path=C:\Program Files (x86)\Arduino\hardware\tools\avr -verbose C:\Users\Rob\Documents\Arduino\myFP2_DRV8825HW203_310\myFP2_DRV8825HW203_310.ino
Using board 'nano' from platform in folder: C:\Program Files (x86)\Arduino\hardware\arduino\avr
Using core 'arduino' from platform in folder: C:\Program Files (x86)\Arduino\hardware\arduino\avr
Detecting libraries used...
"C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -flto -w -x c++ -E -CC -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10815 -DARDUINO_AVR_NANO -DARDUINO_ARCH_AVR "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino" "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\variants\eightanaloginputs" "C:\Users\Rob\AppData\Local\Temp\arduino_build_781390\sketch\myFP2_DRV8825HW203_310.ino.cpp" -o nul
Alternatives for myQueue.h: [myQueue]
ResolveLibrary(myQueue.h)
-> candidates: [myQueue]
"C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -flto -w -x c++ -E -CC -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10815 -DARDUINO_AVR_NANO -DARDUINO_ARCH_AVR "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino" "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\variants\eightanaloginputs" "-IC:\Users\Rob\Documents\Arduino\libraries\myQueue" "C:\Users\Rob\AppData\Local\Temp\arduino_build_781390\sketch\myFP2_DRV8825HW203_310.ino.cpp" -o nul
Alternatives for myEEPROM.h: [myEEPROM]
ResolveLibrary(myEEPROM.h)
-> candidates: [myEEPROM]
"C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -flto -w -x c++ -E -CC -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10815 -DARDUINO_AVR_NANO -DARDUINO_ARCH_AVR "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino" "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\variants\eightanaloginputs" "-IC:\Users\Rob\Documents\Arduino\libraries\myQueue" "-IC:\Users\Rob\Documents\Arduino\libraries\myEEPROM" "C:\Users\Rob\AppData\Local\Temp\arduino_build_781390\sketch\myFP2_DRV8825HW203_310.ino.cpp" -o nul
Alternatives for Wire.h: [Wire@1.0]
ResolveLibrary(Wire.h)
-> candidates: [Wire@1.0]
"C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -flto -w -x c++ -E -CC -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10815 -DARDUINO_AVR_NANO -DARDUINO_ARCH_AVR "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino" "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\variants\eightanaloginputs" "-IC:\Users\Rob\Documents\Arduino\libraries\myQueue" "-IC:\Users\Rob\Documents\Arduino\libraries\myEEPROM" "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\Wire\src" "C:\Users\Rob\AppData\Local\Temp\arduino_build_781390\sketch\myFP2_DRV8825HW203_310.ino.cpp" -o nul
Alternatives for mySSD1306Ascii.h: [myOLED]
ResolveLibrary(mySSD1306Ascii.h)
-> candidates: [myOLED]
"C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -flto -w -x c++ -E -CC -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10815 -DARDUINO_AVR_NANO -DARDUINO_ARCH_AVR "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino" "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\variants\eightanaloginputs" "-IC:\Users\Rob\Documents\Arduino\libraries\myQueue" "-IC:\Users\Rob\Documents\Arduino\libraries\myEEPROM" "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\Wire\src" "-IC:\Users\Rob\Documents\Arduino\libraries\myOLED" "C:\Users\Rob\AppData\Local\Temp\arduino_build_781390\sketch\myFP2_DRV8825HW203_310.ino.cpp" -o nul
Alternatives for OneWire.h: [OneWire@2.3.3]
ResolveLibrary(OneWire.h)
-> candidates: [OneWire@2.3.3]
"C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -flto -w -x c++ -E -CC -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10815 -DARDUINO_AVR_NANO -DARDUINO_ARCH_AVR "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino" "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\variants\eightanaloginputs" "-IC:\Users\Rob\Documents\Arduino\libraries\myQueue" "-IC:\Users\Rob\Documents\Arduino\libraries\myEEPROM" "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\Wire\src" "-IC:\Users\Rob\Documents\Arduino\libraries\myOLED" "-IC:\Users\Rob\Documents\Arduino\libraries\OneWire" "C:\Users\Rob\AppData\Local\Temp\arduino_build_781390\sketch\myFP2_DRV8825HW203_310.ino.cpp" -o nul
Alternatives for myDallasTemperature.h: [myDallasTemperature]
ResolveLibrary(myDallasTemperature.h)
-> candidates: [myDallasTemperature]
"C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -flto -w -x c++ -E -CC -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10815 -DARDUINO_AVR_NANO -DARDUINO_ARCH_AVR "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino" "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\variants\eightanaloginputs" "-IC:\Users\Rob\Documents\Arduino\libraries\myQueue" "-IC:\Users\Rob\Documents\Arduino\libraries\myEEPROM" "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\Wire\src" "-IC:\Users\Rob\Documents\Arduino\libraries\myOLED" "-IC:\Users\Rob\Documents\Arduino\libraries\OneWire" "-IC:\Users\Rob\Documents\Arduino\libraries\myDallasTemperature" "C:\Users\Rob\AppData\Local\Temp\arduino_build_781390\sketch\myFP2_DRV8825HW203_310.ino.cpp" -o nul
Using cached library dependencies for file: C:\Users\Rob\AppData\Local\Temp\arduino_build_781390\sketch\myBoards.cpp
Using cached library dependencies for file: C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\Wire\src\Wire.cpp
Using cached library dependencies for file: C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\Wire\src\utility\twi.c
Using cached library dependencies for file: C:\Users\Rob\Documents\Arduino\libraries\myOLED\mySSD1306Ascii.cpp
Using cached library dependencies for file: C:\Users\Rob\Documents\Arduino\libraries\OneWire\OneWire.cpp
Using cached library dependencies for file: C:\Users\Rob\Documents\Arduino\libraries\myDallasTemperature\myDallasTemperature.cpp
Generating function prototypes...
"C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -flto -w -x c++ -E -CC -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10815 -DARDUINO_AVR_NANO -DARDUINO_ARCH_AVR "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino" "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\variants\eightanaloginputs" "-IC:\Users\Rob\Documents\Arduino\libraries\myQueue" "-IC:\Users\Rob\Documents\Arduino\libraries\myEEPROM" "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\Wire\src" "-IC:\Users\Rob\Documents\Arduino\libraries\myOLED" "-IC:\Users\Rob\Documents\Arduino\libraries\OneWire" "-IC:\Users\Rob\Documents\Arduino\libraries\myDallasTemperature" "C:\Users\Rob\AppData\Local\Temp\arduino_build_781390\sketch\myFP2_DRV8825HW203_310.ino.cpp" -o "C:\Users\Rob\AppData\Local\Temp\arduino_build_781390\preproc\ctags_target_for_gcc_minus_e.cpp"
"C:\Program Files (x86)\Arduino\tools-builder\ctags\5.8-arduino11/ctags" -u --language-force=c++ -f - --c++-kinds=svpf --fields=KSTtzns --line-directives "C:\Users\Rob\AppData\Local\Temp\arduino_build_781390\preproc\ctags_target_for_gcc_minus_e.cpp"
Compiling sketch...
"C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-g++" -c -g -Os -Wall -Wextra -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -MMD -flto -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10815 -DARDUINO_AVR_NANO -DARDUINO_ARCH_AVR "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino" "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\variants\eightanaloginputs" "-IC:\Users\Rob\Documents\Arduino\libraries\myQueue" "-IC:\Users\Rob\Documents\Arduino\libraries\myEEPROM" "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\Wire\src" "-IC:\Users\Rob\Documents\Arduino\libraries\myOLED" "-IC:\Users\Rob\Documents\Arduino\libraries\OneWire" "-IC:\Users\Rob\Documents\Arduino\libraries\myDallasTemperature" "C:\Users\Rob\AppData\Local\Temp\arduino_build_781390\sketch\myFP2_DRV8825HW203_310.ino.cpp" -o "C:\Users\Rob\AppData\Local\Temp\arduino_build_781390\sketch\myFP2_DRV8825HW203_310.ino.cpp.o"
Using previously compiled file: C:\Users\Rob\AppData\Local\Temp\arduino_build_781390\sketch\myBoards.cpp.o
C:\Users\Rob\Documents\Arduino\myFP2_DRV8825HW203_310\myFP2_DRV8825HW203_310.ino: In function 'void loop()':
C:\Users\Rob\Documents\Arduino\myFP2_DRV8825HW203_310\myFP2_DRV8825HW203_310.ino:730:15: warning: variable 'stepstaken' set but not used [-Wunused-but-set-variable]
static byte stepstaken = 0;
Compiling libraries...
Compiling library "myQueue"
Compiling library "myEEPROM"
Compiling library "Wire"
Using previously compiled file: C:\Users\Rob\AppData\Local\Temp\arduino_build_781390\libraries\Wire\Wire.cpp.o
Using previously compiled file: C:\Users\Rob\AppData\Local\Temp\arduino_build_781390\libraries\Wire\utility\twi.c.o
Compiling library "myOLED"
Using previously compiled file: C:\Users\Rob\AppData\Local\Temp\arduino_build_781390\libraries\myOLED\mySSD1306Ascii.cpp.o
Compiling library "OneWire"
Using previously compiled file: C:\Users\Rob\AppData\Local\Temp\arduino_build_781390\libraries\OneWire\OneWire.cpp.o
Compiling library "myDallasTemperature"
Using previously compiled file: C:\Users\Rob\AppData\Local\Temp\arduino_build_781390\libraries\myDallasTemperature\myDallasTemperature.cpp.o
Compiling core...
Using precompiled core: C:\Users\Rob\AppData\Local\Temp\arduino_cache_80339\core\core_arduino_avr_nano_cpu_atmega328old_0c812875ac70eb4a9b385d8fb077f54c.a
Linking everything together...
"C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-gcc" -Wall -Wextra -Os -g -flto -fuse-linker-plugin -Wl,--gc-sections -mmcu=atmega328p -o "C:\Users\Rob\AppData\Local\Temp\arduino_build_781390/myFP2_DRV8825HW203_310.ino.elf" "C:\Users\Rob\AppData\Local\Temp\arduino_build_781390\sketch\myBoards.cpp.o" "C:\Users\Rob\AppData\Local\Temp\arduino_build_781390\sketch\myFP2_DRV8825HW203_310.ino.cpp.o" "C:\Users\Rob\AppData\Local\Temp\arduino_build_781390\libraries\Wire\Wire.cpp.o" "C:\Users\Rob\AppData\Local\Temp\arduino_build_781390\libraries\Wire\utility\twi.c.o" "C:\Users\Rob\AppData\Local\Temp\arduino_build_781390\libraries\myOLED\mySSD1306Ascii.cpp.o" "C:\Users\Rob\AppData\Local\Temp\arduino_build_781390\libraries\OneWire\OneWire.cpp.o" "C:\Users\Rob\AppData\Local\Temp\arduino_build_781390\libraries\myDallasTemperature\myDallasTemperature.cpp.o" "C:\Users\Rob\AppData\Local\Temp\arduino_build_781390/..\arduino_cache_80339\core\core_arduino_avr_nano_cpu_atmega328old_0c812875ac70eb4a9b385d8fb077f54c.a" "-LC:\Users\Rob\AppData\Local\Temp\arduino_build_781390" -lm
C:\Users\Rob\Documents\Arduino\libraries\OneWire/OneWire.h:62:7: warning: type 'struct OneWire' violates the C++ One Definition Rule [-Wodr]
class OneWire
C:\Users\Rob\Documents\Arduino\libraries\OneWire\OneWire.h:57:7: note: a different type is defined in another translation unit
#endif
C:\Users\Rob\Documents\Arduino\libraries\OneWire/OneWire.h:73:13: note: the first difference of corresponding definitions is field 'LastDeviceFlag'
C:\Users\Rob\Documents\Arduino\libraries\OneWire\OneWire.h:68:10: note: a field of same name but different type is defined in another translation unit
#if ONEWIRE_SEARCH
c:\program files (x86)\arduino\hardware\tools\avr\avr\include\stdint.h:126:22: note: type 'uint8_t' should match type 'bool'
typedef unsigned int uint8_t attribute((mode(QI)));
C:\Users\Rob\Documents\Arduino\libraries\myDallasTemperature/myDallasTemperature.h:58:7: warning: type 'struct DallasTemperature' violates the C++ One Definition Rule [-Wodr]
class DallasTemperature
C:\Users\Rob\Documents\Arduino\libraries\myDallasTemperature\myDallasTemperature.h:58:7: note: a different type is defined in another translation unit
class DallasTemperature
C:\Users\Rob\Documents\Arduino\libraries\myDallasTemperature/myDallasTemperature.h:189:14: note: the first difference of corresponding definitions is field '_wire'
C:\Users\Rob\Documents\Arduino\libraries\myDallasTemperature\myDallasTemperature.h:189:14: note: a field of same name but different type is defined in another translation unit
C:\Users\Rob\Documents\Arduino\libraries\OneWire/OneWire.h:62:7: note: type 'struct OneWire' itself violates the C++ One Definition Rule
class OneWire
C:\Users\Rob\Documents\Arduino\libraries\OneWire\OneWire.h:57:7: note: the incompatible type is defined here
#endif
C:\Users\Rob\Documents\Arduino\libraries\myDallasTemperature/myDallasTemperature.h:63:5: warning: '__comp_ctor ' violates the C++ One Definition Rule [-Wodr]
C:\Users\Rob\Documents\Arduino\libraries\myDallasTemperature\myDallasTemperature.cpp:14:1: note: implicit this pointer type mismatch
DallasTemperature::DallasTemperature(OneWire* _oneWire)
^
C:\Users\Rob\Documents\Arduino\libraries\myDallasTemperature\myDallasTemperature.h:58:7: note: type 'struct DallasTemperature' itself violates the C++ One Definition Rule
class DallasTemperature
C:\Users\Rob\Documents\Arduino\libraries\myDallasTemperature/myDallasTemperature.h:58:7: note: the incompatible type is defined here
class DallasTemperature
C:\Users\Rob\Documents\Arduino\libraries\myDallasTemperature\myDallasTemperature.cpp:14:1: note: '__comp_ctor ' was previously declared here
DallasTemperature::DallasTemperature(OneWire* _oneWire)
^
C:\Users\Rob\Documents\Arduino\libraries\myDallasTemperature\myDallasTemperature.cpp:14:1: note: code may be misoptimized unless -fno-strict-aliasing is used
C:\Users\Rob\Documents\Arduino\libraries\myDallasTemperature/myDallasTemperature.h:137:11: warning: 'getTempCByIndex' violates the C++ One Definition Rule [-Wodr]
C:\Users\Rob\Documents\Arduino\libraries\myDallasTemperature\myDallasTemperature.cpp:383:7: note: implicit this pointer type mismatch
float DallasTemperature::getTempCByIndex(uint8_t deviceIndex){
C:\Users\Rob\Documents\Arduino\libraries\myDallasTemperature\myDallasTemperature.h:58:7: note: type 'struct DallasTemperature' itself violates the C++ One Definition Rule
class DallasTemperature
C:\Users\Rob\Documents\Arduino\libraries\myDallasTemperature/myDallasTemperature.h:58:7: note: the incompatible type is defined here
class DallasTemperature
C:\Users\Rob\Documents\Arduino\libraries\myDallasTemperature\myDallasTemperature.cpp:383:7: note: 'getTempCByIndex' was previously declared here
float DallasTemperature::getTempCByIndex(uint8_t deviceIndex){
C:\Users\Rob\Documents\Arduino\libraries\myDallasTemperature/myDallasTemperature.h:68:10: warning: 'begin' violates the C++ One Definition Rule [-Wodr]
C:\Users\Rob\Documents\Arduino\libraries\myDallasTemperature\myDallasTemperature.cpp:47:6: note: implicit this pointer type mismatch
void DallasTemperature::begin(void){
C:\Users\Rob\Documents\Arduino\libraries\myDallasTemperature\myDallasTemperature.h:58:7: note: type 'struct DallasTemperature' itself violates the C++ One Definition Rule
class DallasTemperature
C:\Users\Rob\Documents\Arduino\libraries\myDallasTemperature/myDallasTemperature.h:58:7: note: the incompatible type is defined here
class DallasTemperature
C:\Users\Rob\Documents\Arduino\libraries\myDallasTemperature\myDallasTemperature.cpp:47:6: note: 'begin' was previously declared here
void DallasTemperature::begin(void){
C:\Users\Rob\Documents\Arduino\libraries\myDallasTemperature/myDallasTemperature.h:71:13: warning: 'getDeviceCount' violates the C++ One Definition Rule [-Wodr]
C:\Users\Rob\Documents\Arduino\libraries\myDallasTemperature\myDallasTemperature.cpp:73:9: note: implicit this pointer type mismatch
uint8_t DallasTemperature::getDeviceCount(void){
C:\Users\Rob\Documents\Arduino\libraries\myDallasTemperature\myDallasTemperature.h:58:7: note: type 'struct DallasTemperature' itself violates the C++ One Definition Rule
class DallasTemperature
C:\Users\Rob\Documents\Arduino\libraries\myDallasTemperature/myDallasTemperature.h:58:7: note: the incompatible type is defined here
class DallasTemperature
C:\Users\Rob\Documents\Arduino\libraries\myDallasTemperature\myDallasTemperature.cpp:73:9: note: 'getDeviceCount' was previously declared here
uint8_t DallasTemperature::getDeviceCount(void){
C:\Users\Rob\Documents\Arduino\libraries\myDallasTemperature/myDallasTemperature.h:80:10: warning: 'getAddress' violates the C++ One Definition Rule [-Wodr]
C:\Users\Rob\Documents\Arduino\libraries\myDallasTemperature\myDallasTemperature.cpp:84:6: note: implicit this pointer type mismatch
bool DallasTemperature::getAddress(uint8_t* deviceAddress, uint8_t index){
C:\Users\Rob\Documents\Arduino\libraries\myDallasTemperature\myDallasTemperature.h:58:7: note: type 'struct DallasTemperature' itself violates the C++ One Definition Rule
class DallasTemperature
C:\Users\Rob\Documents\Arduino\libraries\myDallasTemperature/myDallasTemperature.h:58:7: note: the incompatible type is defined here
class DallasTemperature
C:\Users\Rob\Documents\Arduino\libraries\myDallasTemperature\myDallasTemperature.cpp:84:6: note: 'getAddress' was previously declared here
bool DallasTemperature::getAddress(uint8_t* deviceAddress, uint8_t index){
C:\Users\Rob\Documents\Arduino\libraries\myDallasTemperature/myDallasTemperature.h:119:10: warning: 'requestTemperatures' violates the C++ One Definition Rule [-Wodr]
C:\Users\Rob\Documents\Arduino\libraries\myDallasTemperature\myDallasTemperature.cpp:302:6: note: implicit this pointer type mismatch
void DallasTemperature::requestTemperatures(){
C:\Users\Rob\Documents\Arduino\libraries\myDallasTemperature\myDallasTemperature.h:58:7: note: type 'struct DallasTemperature' itself violates the C++ One Definition Rule
class DallasTemperature
C:\Users\Rob\Documents\Arduino\libraries\myDallasTemperature/myDallasTemperature.h:58:7: note: the incompatible type is defined here
class DallasTemperature
C:\Users\Rob\Documents\Arduino\libraries\myDallasTemperature\myDallasTemperature.cpp:302:6: note: 'requestTemperatures' was previously declared here
void DallasTemperature::requestTemperatures(){
C:\Users\Rob\Documents\Arduino\libraries\myDallasTemperature/myDallasTemperature.h:108:10: warning: 'setResolution' violates the C++ One Definition Rule [-Wodr]
C:\Users\Rob\Documents\Arduino\libraries\myDallasTemperature\myDallasTemperature.cpp:198:6: note: implicit this pointer type mismatch
bool DallasTemperature::setResolution(const uint8_t* deviceAddress, uint8_t newResolution){
C:\Users\Rob\Documents\Arduino\libraries\myDallasTemperature\myDallasTemperature.h:58:7: note: type 'struct DallasTemperature' itself violates the C++ One Definition Rule
class DallasTemperature
C:\Users\Rob\Documents\Arduino\libraries\myDallasTemperature/myDallasTemperature.h:58:7: note: the incompatible type is defined here
class DallasTemperature
C:\Users\Rob\Documents\Arduino\libraries\myDallasTemperature\myDallasTemperature.cpp:198:6: note: 'setResolution' was previously declared here
bool DallasTemperature::setResolution(const uint8_t* deviceAddress, uint8_t newResolution){
C:\Users\Rob\AppData\Local\Temp\cc3kZIsJ.ltrans0.ltrans.o: In function `global constructors keyed to 65535_0_myBoards.cpp.o.2848':
<artificial>:(.text.startup+0x11a): undefined reference to `OneWire::OneWire(unsigned char)'</artificial>
collect2.exe: error: ld returned 1 exit status
Using library myQueue in folder: C:\Users\Rob\Documents\Arduino\libraries\myQueue (legacy)
Using library myEEPROM in folder: C:\Users\Rob\Documents\Arduino\libraries\myEEPROM (legacy)
Using library Wire at version 1.0 in folder: C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\Wire
Using library myOLED in folder: C:\Users\Rob\Documents\Arduino\libraries\myOLED (legacy)
Using library OneWire at version 2.3.3 in folder: C:\Users\Rob\Documents\Arduino\libraries\OneWire
Using library myDallasTemperature in folder: C:\Users\Rob\Documents\Arduino\libraries\myDallasTemperature (legacy)
exit status 1
Error compiling for board Arduino Nano.
The issue is around linking
collect2.exe: error: ld returned 1 exit status
This sometimes occurs when you compile the firmware. What happens is the Arduino IDE compiles all the libraies, the firmware and then attempts to put everything together.
It writes all of these to a temporary folder. Sometimes when you recompile, make a change, recompile etc the arduino ide attempts to reuse some of those objects that were compiled previously.
In general, this error can be overcome by the following things
1. exit the arduino IDE and delete all temporary files, then try again
2. Sometimes a configuration option in the focuserconfig.h file might prevent the compile from succeeding. Disable all options and recompile. Add each option 1 at a time, recompiling after each change.
We are now on firmware v312.