Building arduino firmware fail!


#1
Building Firmware...

unpacking
staging: build dir is /tmp/tmp.52JxDgxBnh
staged src in to build folder

staging plugins
unpacked into folder /tmp/tmp.52JxDgxBnh
compilling in /tmp/tmp.52JxDgxBnh
mv: cannot stat ‘/tmp/tmp.52JxDgxBnh/src/Device.cpp’: No such file or directory
sed: can’t read /tmp/tmp.52JxDgxBnh/src/Device.cpp.template: No such file or directory
rm: cannot remove ‘/tmp/tmp.52JxDgxBnh/src/Device.cpp.template’: No such file or directory
Searching for Board description file (boards.txt) … /usr/share/arduino/hardware/arduino/boards.txt
Searching for Arduino lib version file (version.txt) … /usr/share/arduino/lib/version.txt
Detecting Arduino software version … 1.0.5 (1.0.5)
Searching for Arduino core library … /usr/share/arduino/hardware/arduino/cores/arduino
Searching for Arduino variants directory … /usr/share/arduino/hardware/arduino/variants
Searching for Arduino standard libraries … /usr/share/arduino/libraries
Searching for make … /usr/share/arduino/hardware/tools/avr/bin/make
Searching for avr-gcc … /usr/share/arduino/hardware/tools/avr/bin/avr-gcc
Searching for avr-g++ … /usr/share/arduino/hardware/tools/avr/bin/avr-g++
Searching for avr-ar … /usr/share/arduino/hardware/tools/avr/bin/avr-ar
Searching for avr-objcopy … /usr/share/arduino/hardware/tools/avr/bin/avr-objcopy
src/OpenROV.ino
Searching for Arduino lib version file (version.txt) … /usr/share/arduino/lib/version.txt
Detecting Arduino software version … 1.0.5 (1.0.5)
Scanning dependencies of src
Scanning dependencies of arduino
Scanning dependencies of EEPROM
Scanning dependencies of SPI
src/CMS5803_XXBA.cpp
src/CPin.cpp
src/CMotor.cpp
src/CMS5803_XXBALib.cpp
src/CThrusters_2X1X1.cpp
src/CAutopilot_STD.cpp
src/CControllerBoard.cpp
src/Utility.cpp
src/CAutopilot_EXP.cpp
src/CI2C.cpp
src/CLights.cpp
src/LibMPU_Calibration.cpp
src/LibMPU_Quaternion.cpp
src/CCommand.cpp
src/Device.cpp
src/CCape.cpp
src/NDataManager.cpp
src/CCameraMount.cpp
src/NArduinoManager.cpp
src/LibMPU_DMPDriver.cpp
src/LibMPU.cpp
src/CMS5803_XX.cpp
src/NConfigManager.cpp
src/CAdaBNO055.cpp
src/CCalibrationLaser.cpp
src/LibMPU_Vector3.cpp
src/CMPU9150.cpp
src/NModuleManager.cpp
src/CServo.cpp
src/CTimer.cpp
src/LibMPU_DriverLayer.cpp
src/LibMPU_I2CDevice.cpp
src/CBNO055.cpp
src/NCommManager.cpp
src/CDeadManSwitch.cpp
src/CPIDController.cpp
src/CThrusters_2X1.cpp
src/CAltServo.cpp
src/CModule.cpp
src/OpenROV.cpp
EEPROM/EEPROM.cpp
Linking libEEPROM.a
SPI/SPI.cpp
Linking libSPI.a
arduino/wiring.c
arduino/wiring_analog.c
arduino/WInterrupts.c
arduino/avr-libc/malloc.c
arduino/avr-libc/realloc.c
arduino/wiring_digital.c
arduino/wiring_pulse.c
arduino/wiring_shift.c
arduino/WMath.cpp
arduino/main.cpp
arduino/WString.cpp
arduino/HardwareSerial.cpp
arduino/new.cpp
arduino/Print.cpp
arduino/USBCore.cpp
arduino/IPAddress.cpp
arduino/HID.cpp
arduino/Stream.cpp
arduino/CDC.cpp
arduino/Tone.cpp
Linking libarduino.a
Linking firmware.elf
.build/mega2560/src/NModuleManager.o: In function _GLOBAL__sub_D_m_controllerBoard': /tmp/tmp.52JxDgxBnh/src/NModuleManager.cpp:59: undefined reference tovtable for CThrusters’
/tmp/tmp.52JxDgxBnh/src/NModuleManager.cpp:59: undefined reference to vtable for CThrusters' /tmp/tmp.52JxDgxBnh/src/NModuleManager.cpp:59: undefined reference tovtable for CThrusters’
/tmp/tmp.52JxDgxBnh/src/NModuleManager.cpp:59: undefined reference to `vtable for CThrusters’
collect2: error: ld returned 1 exit status
.build/mega2560/Makefile:458: recipe for target ‘.build/mega2560/firmware.elf’ failed
make: *** [.build/mega2560/firmware.elf] Error 1
Make failed with code 2
firmware-build.sh: : Compile of the Arduino image failed.
firmware-installfromsource.sh: Building Firmware Failed! Aborting

**Hi, i need some help, i tried modifying the arduino code on cloud 9 and tried to build the firmware but it fail, what could be the problem?
i had follow this guide OpenROV Firmware (Arduino) Development Guide

BTW im using a new BBB board i purchase separately outside and flash them with a 30.0.3 image**


#2

Looks like you were modifying the CThrusters class and forgot to implement one of the pure virtual methods Initialize() or Update(). That error is usually the result of forgetting to implement a virtual function of a derived class. In this case, CThrusters is derived from the CModule class, which has two pure virtual methods that you must implement. Can’t really pinpoint the problem without seeing the code, though.


#3

thanks, its done now