Lier l'erreur lors de l'appel d'une fonction
-
04-10-2019 - |
Question
Quand mon code appelle une fonction, je reçois une erreur:
H: \ espace de travail \ HW5 \ HW5 \ Manager.obj
Erreur 22 LNK2019 d'erreur: symbole externe non résolu « du public: void __thiscall Shalishut :: Task8_MoveVehicleFromBaseToBase (classe * Militaire, char const *, char *, char *) »(? Task8_MoveVehicleFromBaseToBase @ Shalishut @@ QAEXPAVMilitary @@ PBDPAD2 @ Z) référencé dans la fonction « publique: void __thiscall :: Responsable TaskExecute (classe Task *, classe * militaire, classe Shalishut *, char * * const) » (? TaskExecute @ Gestionnaire @@ QAEXPAVTask @@ PAVMilitary @@ PAVShalishut @@ QAPAD @ Z) H: \ espace de travail \ HW5 \ HW5 \ Manager.objH: \ espace de travail \ HW5 \ HW5 \ Manager.obj
et
erreur LNK1120: 1 externes non résolus H: \ espace de travail \ HW5 \ Debug \ HW5.exe
Quand je ne suis pas d'appeler cette fonction, tout est OK et le projet construit.
Voici le code appelant la fonction:
shalishut->Task8_MoveVehicleFromBaseToBase(military,licenseId,campNameA,campNameB);
et voici la fonction:
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);
}
}
}
}
}
La solution
Je crois que les besoins de déclaration de fonction à:
void Shalishut::Task8_MoveVehicleFromBaseToBase(Military* military,const char* licenseId,char* fromBase,char* toBase) {
...
}
Vous ne nous fournit pas vraiment avec les fichiers d'en-tête donc je suppose que la fonction est un membre de la classe shalishut.