У меня проблема с сборкой и запуском юнит-тестов в NetBeans. Ошибка в названии выше, а также в дампе ниже. [Введите описание изображения здесь] [1]
build/Debug/Cygwin-Windows/Device.o: In function `Device::Device()':
/cygdrive/c/Users/Sam/Documents/NetBeansProjects/Rover/Device.cpp:11:
undefined reference to 'Battery::Battery()'
/cygdrive/c/Users/Sam/Documents/NetBeansProjects/Rover/Device.cpp:11:(.text+0x26): relocation truncated to fit: R_X86_64_PC32 against undefined symbol `Battery::Battery()'
Я получаю три одинаковые ошибки для разных строк в моем коде:
#include "Device.h"
Battery _battery; //error here
Device::Device() //error here
{
}
Device::Device(const Device& orig) { //error here
}
Device::~Device() {
}
void Device::operate()
{
}
Battery Device::getBattery()
{
return _battery;
}
Заголовочный файл устройства ->
#include "Battery.h"
#ifndef DEVICE_H
#define DEVICE_Hclass Device {
public:
Device();
Device(const Device& orig);
virtual ~Device();
virtual void operate();
Battery getBattery();
//bool connectBattery();
//bool disconnectBattery();
private:
Battery _battery;
};
#endif /* DEVICE_H */
Battery.cpp
#include "Battery.h"int _power;
Battery::Battery(int power)
{
_power=power;
}
Battery::Battery(const Battery& orig)
{
}
Battery::~Battery()
{
}
bool Battery::Charge(int pUnit)
{
_power += pUnit;
return true;
}
bool Battery::Discharge(int pUnit)
{
_power -= pUnit;
return true;
}
Battery.h
#ifndef BATTERY_H
#define BATTERY_H
class Battery {
public:
Battery();
Battery(int power);
Battery(const Battery& orig);
virtual ~Battery();
bool Charge(int pUnit);
bool Discharge(int pUnit);
private:
int _power;
};
#endif /* BATTERY_H */
Любая помощь была бы отличной, я уже давно бросаю эту проблему ..
редактировать: я также тестирую проект с Alt-F6 + cppunit тесты
Задача ещё не решена.
Других решений пока нет …