Я пишу статическую библиотеку, которая использует PugiXml для разбора xml. Вот вывод компоновщика из Visual Studio 2010 (я заменил символ на эллипсы для удобства чтения):
error LNK2019: unresolved external symbol "public: __thiscall Dae_Library<class Dae_Geometry>::Dae_Library<class Dae_Geometry>(void)" (...) referenced in function "private: bool __thiscall Dae_Doc::ParseDae(void)" (...)
error LNK2019: ^ "public: wchar_t const * __thiscall pugi::xml_node::name(void)const " (...) referenced in function "private: bool __thiscall Dae_Doc::ParseDae(void)" (...)
error LNK2001: ^ "public: wchar_t const * __thiscall pugi::xml_node::name(void)const " (...)
error LNK2019: ^ "public: wchar_t const * __thiscall pugi::xml_attribute::value(void)const " (...) referenced in function "public: void __thiscall Dae_Node::SetXmlNode(class pugi::xml_node &)" (...)
error LNK2019: ^ "public: class pugi::xml_attribute __thiscall pugi::xml_node::attribute(wchar_t const *)const " (...) referenced in function "public: void __thiscall Dae_Node::SetXmlNode(class pugi::xml_node &)" (...)
Вещи, которые я пробовал:
- Явно создаю экземпляр класса моего шаблона.
- Связывание исходного кода PugiXml с тестовым проектом (в данный момент это статическая библиотека, которую я создаю)
- Сборка PugiXml как статической библиотеки и ссылки на нее как в моем проекте lib, так и в тестовом проекте
- Запись ничего не делает вместо моих чисто виртуальных функций.
- Предоставление конструкторов по умолчанию, которые вообще не ссылаются на pugixml
Это сводило меня с ума в течение последних двух дней, и я действительно понятия не имею, что делать. Если бы кто-нибудь вообще мог дать мне какое-либо направление, я бы сильно оценил бы это!
Edit:
Стоит отметить, что создание простой статической библиотеки, которая использует pugixml, прекрасно компилируется и тестирует, так что, возможно, что-то не так с тем, как я написал свои шаблоны и классы?