Я пишу статическую библиотеку, которая использует PugiXml для разбора xml. Вот вывод линкер из Visual Studio 2010 (я заменил символ с эллипсов для удобства чтения):Unresolved externals при создании статической библиотеки lib, которая использует PugiXml
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 &)" (...)
Вещи, которые я пробовал:
- Явное инстанцировании мой шаблонный класс. источник
- Linking PugiXml с использованием тестового проекта (в настоящий момент с помощью статического Lib я в здании)
- Building PugiXml как статический Lib и не ссылаться на него как в моем Lib проекта и тестовый проект
- Writing делать ничего вместо моих чистых виртуальных функций.
- Обеспечение по умолчанию конструкторы, которые не ссылаются pugixml на всех
Это было сводит меня с ума в течение последних двух дней, и я действительно не знаю, что делать. Если кто-нибудь может дать мне какое-либо направление, я бы очень оцените!
Редактировать: Следует отметить, что создание простой статической библиотеки, которая использует компиляции и тесты pugixml, может быть, что-то не так с тем, как я написал свои шаблоны и классы?
Вы уверены, что DLL библиотеки PugiXml находится по умолчанию, где компоновщик может ее найти? –
@ H2CO3 Я не использую Pugixml как dll. Он распространяется в исходной форме, и для его использования вам просто нужно добавить его в свой проект. Когда я использовал его как статическую библиотеку, у меня были правильные пути. – user1152415