Как исправить ошибку связывания? - PullRequest
0 голосов
/ 21 сентября 2010

эй, извините за это, но я пытаюсь выяснить, в чем проблема слишком долго, если вы можете найти подсказку из этого длинного сообщения об ошибке, я буду благодарен

Error   6   
error LNK2019: unresolved external symbol "public: __thiscall Adjutancy::Adjutancy(class std::set<class Vehicle *,struct CompareCatId,class std::allocator<class Vehicle *> > *,class std::vector<class std::vector<class Distance *,class std::allocator<class Distance *> >,class std::allocator<class std::vector<class Distance *,class std::allocator<class Distance *> > > > *,class std::map<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,class Base *,struct std::less<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > >,class std::allocator<struct std::pair<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const ,class Base *> > > *,class std::map<int,class City *,struct std::less<int>,class std::allocator<struct std::pair<int const ,class City *> > > *)" (??0Adjutancy@@QAE@PAV?$set@PAVVehicle@@UCompareCatId@@V?$allocator@PAVVehicle@@@std@@@std@@PAV?$vector@V?$vector@PAVDistance@@V?$allocator@PAVDistance@@@std@@@std@@V?$allocator@V?$vector@PAVDistance@@V?$allocator@PAVDistance@@@std@@@std@@@2@@2@PAV?$map@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PAVBase@@U?$less@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@V?$allocator@U?$pair@$$CBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PAVBase@@@std@@@2@@2@PAV?$map@HPAVCity@@U?$less@H@std@@V?$allocator@U?$pair@$$CBHPAVCity@@@std@@@3@@2@@Z) referenced in function "private: class Adjutancy * __thiscall Reader::ReadFromFile(char * * const)" (?ReadFromFile@Reader@@AAEPAVAdjutancy@@QAPAD@Z)   
C:\Users\Roy\documents\visual studio 2010\Projects\HomeWork5\HomeWork5\Reader.obj

Ответы [ 2 ]

3 голосов
/ 21 сентября 2010
Конструктор

Adjutancy не компилируется. Возможно, вы не компилируете исходный файл или забыли реализовать эту функцию.

Если вы хотите получить лучшие ответы, напишите свой код.

Кстати, подпись для рассматриваемого конструктора, вероятно, выглядит примерно так:

Adjutancy::Adjutancy(set<Vehicle *,CompareCatId>*,vector<vector<Distance *> >*,map<string,Base *> *,map<int,City*> *

И в вашем коде есть 48 вещей, которые просто ужасны.

0 голосов
/ 21 сентября 2010

Обычно ошибки компоновщика указывают один (или несколько) из них:

  1. Функция объявлена ​​(и используется), но не определена. Определите функцию.
  2. Вам не хватает declspec. При создании / использовании классов / функций для использования в DLL необходимо квалифицировать объявления с помощью declspec (dllexport), а затем квалифицировать их с помощью declspec (dllimport) при использовании типов (обычно это делается с помощью макроса, который определен по-другому). во время компиляции и потребления).
  3. Вам не хватает включения lib при линковке. Добавьте необходимую зависимость lib к вашей команде link.
...