Извините, если этот вопрос может быть задан раньше, но я не смог найти правильный ответ. Я пытаюсь использовать свой собственный файл класса внутри другого класса, который уже был написан разными людьми. Вся программа основана на Omnet ++. Перед сборкой все, кажется, хорошо, но как только я построю программа дает мне ошибкуКласс не связан должным образом
undefined reference to `RatePrediction::RatePrediction(double, double, double)
Я пытаюсь использовать RatePrediction в CentralEntity и это то, что я сделал:
В RatePrediction .cc:
#include "CentralEntity.h"
RatePrediction::RatePrediction(double gs,double gi, double dataRate):
gs(gs), gi_int(gi), reqDataRate(dataRate), result(0), error(0){
//some codes
}
В CentralEntity.h:
#include "RatePrediction.h"
class CentralEntity : public cAsyncModule
{
//friend classes ....
protected:
virtual void initialize();
}
В Сеп tralEntity.cc:
#include "RatePrediction.h"
void CentralEntity::initialize()
{
RatePrediction RateObj(1.1e-13,1.2-13,1e4);
}
EDIT:
@hildensia Спасибо за ваш комментарий. Я действительно сделал это, и теперь он работает. Но я не уверен, может ли он быть надежным и стабильным или нет.
Я редактировал Makefile
вручную, и я добавил:
OBJS= RatePrediction.o
RatePrediction.o: RatePrediction.cc
$(CXX) -c $(COPTS) RatePrediction.cc
Is RatePrediction.cc скомпилирован в объектный файл и связан с целевым исполняемым файлом? Включен ли он в сборку? – eci
Можете ли вы показать, как вы скомпилируете программу? Проблема может заключаться в том, что вы пропустите ссылку на RatePrediction.o (я должен был замедлить ...) – hildensia
@hildensia Я использую Eclipse (компилятор GCC C++). о RatePrediction.o вы правы. файл не существует рядом с другими файлами * .o – Shahab