La vinculación de error cuando se llama a una función
-
04-10-2019 - |
Pregunta
Cuando mi código está llamando a una función determinada, estoy recibiendo un error:
H: \ espacio de trabajo \ HW5 \ HW5 \ Manager.obj
22 Error de error LNK2019: símbolo externo sin resolver "público: void __thiscall Shalishut :: Task8_MoveVehicleFromBaseToBase (clase * Militar, const char *, char *, char *)"(? Task8_MoveVehicleFromBaseToBase @ Shalishut @@ @@ QAEXPAVMilitary PBDPAD2 @ Z) hace referencia en la función pública": void __thiscall Administración :: TaskExecute (clase de tareas *, * la clase militar, clase Shalishut *, char * const *)" (? TaskExecute @ Gestor @@ @@ QAEXPAVTask PAVMilitary @@ @@ PAVShalishut QAPAD @ Z) H: \ espacio de trabajo \ HW5 \ HW5 \ Manager.objH: \ espacio de trabajo \ HW5 \ HW5 \ Manager.obj
y
LNK1120 error: 1 externos sin resolver H: \ espacio de trabajo \ HW5 \ Debug \ HW5.exe
Cuando no estoy llamando a esa función, todo está bien y el proyecto se basa.
Este es el código llama a la función:
shalishut->Task8_MoveVehicleFromBaseToBase(military,licenseId,campNameA,campNameB);
y aquí está la función:
void Task8_MoveVehicleFromBaseToBase(Military* military,const char* licenseId,char* fromBase,char* toBase){
if (military->IsBaseExist(fromBase)){
if(military->FindBase(fromBase)->IsVehicleExist(licenseId)){
if (military->IsBaseExist(toBase)){
if(military->GetCountry()->IsRoadExist(military->FindBase(fromBase)->GetCityName(),military->FindBase(toBase)->GetCityName())){
military->FindBase(toBase)->AddVehicleToBase( military->FindBase(fromBase)->RemoveVehicleFromBase(licenseId) );
Time* time = Time::GetInstance();
long double distance = military->GetCountry()->GetRoadDistance(military->FindBase(fromBase)->GetCityName(),military->FindBase(toBase)->GetCityName());
Transport* transportToAdd = new Transport(time->GetTime(),(string)fromBase,(string)toBase,distance);
military->FindVehicle(licenseId)->AddTransport(transportToAdd);
}
}
}
}
}
Solución
Creo que las necesidades de declaración de la función a ser:
void Shalishut::Task8_MoveVehicleFromBaseToBase(Military* military,const char* licenseId,char* fromBase,char* toBase) {
...
}
realmente no nos proporcionan los archivos de cabecera así que estoy asumiendo que la función es un miembro de la clase shalishut.