Форум программистов, компьютерный форум CyberForum.ru

Работа с tinyxml ошибки LNK 2019 и LNK 2001 - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 15, средняя оценка - 4.67
monnzz
0 / 0 / 0
Регистрация: 10.05.2012
Сообщений: 29
13.04.2013, 23:34     Работа с tinyxml ошибки LNK 2019 и LNK 2001 #1
всем привет!
скачал архив tinyxml, разархивировал в папку проекта
затем написал следующий код:

C++
1
2
3
4
5
6
7
8
9
10
11
12
#include "stdafx.h"
#include "tinyxml/tinyxml.h"
#include <iostream>
 
int _tmain(int argc, _TCHAR* argv[])
{
    TiXmlDocument x ("1.xml");
    x.LoadFile ();
    x.Print(); //выводит весь файл
    std::system ("PAUSE");
    return 0;
}
при компиляции возникают следующие ошибки:
Код
1>Xml_first_attempt.obj : error LNK2019: ссылка на неразрешенный внешний символ "public: bool __thiscall TiXmlDocument::LoadFile(enum TiXmlEncoding)" (?LoadFile@TiXmlDocument@@QAE_NW4TiXmlEncoding@@@Z) в функции _wmain
1>Xml_first_attempt.obj : error LNK2019: ссылка на неразрешенный внешний символ "public: __thiscall TiXmlDocument::TiXmlDocument(char const *)" (??0TiXmlDocument@@QAE@PBD@Z) в функции _wmain
1>Xml_first_attempt.obj : error LNK2019: ссылка на неразрешенный внешний символ "public: virtual __thiscall TiXmlNode::~TiXmlNode(void)" (??1TiXmlNode@@UAE@XZ) в функции "public: virtual __thiscall TiXmlDocument::~TiXmlDocument(void)" (??1TiXmlDocument@@UAE@XZ)
1>Xml_first_attempt.obj : error LNK2001: неразрешенный внешний символ ""public: virtual void __thiscall TiXmlDocument::Print(struct _iobuf *,int)const " (?Print@TiXmlDocument@@UBEXPAU_iobuf@@H@Z)"
1>Xml_first_attempt.obj : error LNK2001: неразрешенный внешний символ ""public: virtual char const * __thiscall TiXmlDocument::Parse(char const *,class TiXmlParsingData *,enum TiXmlEncoding)" (?Parse@TiXmlDocument@@UAEPBDPBDPAVTiXmlParsingData@@W4TiXmlEncoding@@@Z)"
1>Xml_first_attempt.obj : error LNK2001: неразрешенный внешний символ ""protected: virtual class TiXmlNode * __thiscall TiXmlDocument::Clone(void)const " (?Clone@TiXmlDocument@@MBEPAVTiXmlNode@@XZ)"
1>Xml_first_attempt.obj : error LNK2001: неразрешенный внешний символ ""public: virtual bool __thiscall TiXmlDocument::Accept(class TiXmlVisitor *)const " (?Accept@TiXmlDocument@@UBE_NPAVTiXmlVisitor@@@Z)"
1>Xml_first_attempt.obj : error LNK2001: неразрешенный внешний символ ""private: static struct TiXmlString::Rep TiXmlString::nullrep_" (?nullrep_@TiXmlString@@0URep@1@A)"

никто не может подсказать в чем может быть проблема? компилю в VisualStudio2010

Добавлено через 20 минут
вопрос снимается, разобрался, забыл добавить файлы в самом проекте
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.04.2013, 23:34     Работа с tinyxml ошибки LNK 2019 и LNK 2001
Посмотрите здесь:

C++ error lnk 2019
Error LNK 2019. VS 2010 C++
LNK 2001 C++
C++ Выдает ошибку LNK 2019
C++ Error LNK 2001
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Avazart
 Аватар для Avazart
6897 / 5137 / 252
Регистрация: 10.12.2010
Сообщений: 22,578
Записей в блоге: 17
14.04.2013, 00:11     Работа с tinyxml ошибки LNK 2019 и LNK 2001 #2
А кто саму либу подключать будет ?
C++
1
#pragma comment (lib, "tinyxml.lib")
Omnio
0 / 0 / 0
Регистрация: 19.07.2009
Сообщений: 41
12.07.2013, 14:09     Работа с tinyxml ошибки LNK 2019 и LNK 2001 #3
Хотел бы поднять эту тему, ибо столкнулся с полностью аналогичной проблемой:

Работаю в Viisual Studio 2010
Скачал tinyxml 2.6 последней версии с офф. сайта.
добавил заголовочный tinyxml.h , добавил исходный tinyxml.cpp файлы в проект.
(1) добавлял каждый файл в соответствующую папку заголовок к заголовочным файлам, исходник к исходникам
2)так же попробовал и вариант положить оба файла в отдельную папку в проекте, указывая путь #include "tinyxml/tinyxml.h")

Вставил весь код, что выложил автор этого топика monnzz

C++
1
2
3
4
5
6
7
8
9
10
11
12
#include "stdafx.h"
#include "tinyxml/tinyxml.h"
#include <iostream>
 
int _tmain(int argc, _TCHAR* argv[])
{
    TiXmlDocument x ("1.xml");
    x.LoadFile ();
    x.Print(); //выводит весь файл
    std::system ("PAUSE");
    return 0;
}
Ну собственно запустил и ошибки линкера полезли также:

Код
1>main_tinyXML.obj : error LNK2001: неразрешенный внешний символ ""public: virtual char const * __thiscall TiXmlDocument::Parse(char const *,class TiXmlParsingData *,enum TiXmlEncoding)" (?Parse@TiXmlDocument@@UAEPBDPBDPAVTiXmlParsingData@@W4TiXmlEncoding@@@Z)"
1>tinyxml.obj : error LNK2001: неразрешенный внешний символ ""public: virtual char const * __thiscall TiXmlDocument::Parse(char const *,class TiXmlParsingData *,enum TiXmlEncoding)" (?Parse@TiXmlDocument@@UAEPBDPBDPAVTiXmlParsingData@@W4TiXmlEncoding@@@Z)"
1>main_tinyXML.obj : error LNK2001: неразрешенный внешний символ ""private: static struct TiXmlString::Rep TiXmlString::nullrep_" (?nullrep_@TiXmlString@@0URep@1@A)"
1>tinyxml.obj : error LNK2001: неразрешенный внешний символ ""private: static struct TiXmlString::Rep TiXmlString::nullrep_" (?nullrep_@TiXmlString@@0URep@1@A)"
1>tinyxml.obj : error LNK2001: неразрешенный внешний символ ""private: static struct TiXmlBase::Entity * TiXmlBase::entity" (?entity@TiXmlBase@@0PAUEntity@1@A)"
1>tinyxml.obj : error LNK2019: ссылка на неразрешенный внешний символ "public: class TiXmlString & __thiscall TiXmlString::append(char const *,unsigned int)" (?append@TiXmlString@@QAEAAV1@PBDI@Z) в функции "public: static void __cdecl TiXmlBase::EncodeString(class TiXmlString const &,class TiXmlString *)" (?EncodeString@TiXmlBase@@SAXABVTiXmlString@@PAV2@@Z)
1>tinyxml.obj : error LNK2019: ссылка на неразрешенный внешний символ "public: class TiXmlString & __thiscall TiXmlString::assign(char const *,unsigned int)" (?assign@TiXmlString@@QAEAAV1@PBDI@Z) в функции "public: class TiXmlString & __thiscall TiXmlString::operator=(char const *)" (??4TiXmlString@@QAEAAV0@PBD@Z)
1>tinyxml.obj : error LNK2019: ссылка на неразрешенный внешний символ "public: void __thiscall TiXmlDocument::SetError(int,char const *,class TiXmlParsingData *,enum TiXmlEncoding)" (?SetError@TiXmlDocument@@QAEXHPBDPAVTiXmlParsingData@@W4TiXmlEncoding@@@Z) в функции "public: class TiXmlNode * __thiscall TiXmlNode::LinkEndChild(class TiXmlNode *)" (?LinkEndChild@TiXmlNode@@QAEPAV1@PAV1@@Z)
1>tinyxml.obj : error LNK2001: неразрешенный внешний символ ""public: virtual char const * __thiscall TiXmlElement::Parse(char const *,class TiXmlParsingData *,enum TiXmlEncoding)" (?Parse@TiXmlElement@@UAEPBDPBDPAVTiXmlParsingData@@W4TiXmlEncoding@@@Z)"
1>tinyxml.obj : error LNK2019: ссылка на неразрешенный внешний символ "protected: static bool __cdecl TiXmlBase::StringEqual(char const *,char const *,bool,enum TiXmlEncoding)" (?StringEqual@TiXmlBase@@KA_NPBD0_NW4TiXmlEncoding@@@Z) в функции "public: int __thiscall TiXmlElement::QueryBoolAttribute(char const *,bool *)const " (?QueryBoolAttribute@TiXmlElement@@QBEHPBDPA_N@Z)
1>tinyxml.obj : error LNK2001: неразрешенный внешний символ ""public: static unsigned int const TiXmlString::npos" (?npos@TiXmlString@@2IB)"
1>tinyxml.obj : error LNK2001: неразрешенный внешний символ ""public: virtual char const * __thiscall TiXmlComment::Parse(char const *,class TiXmlParsingData *,enum TiXmlEncoding)" (?Parse@TiXmlComment@@UAEPBDPBDPAVTiXmlParsingData@@W4TiXmlEncoding@@@Z)"
1>tinyxml.obj : error LNK2001: неразрешенный внешний символ ""public: virtual char const * __thiscall TiXmlText::Parse(char const *,class TiXmlParsingData *,enum TiXmlEncoding)" (?Parse@TiXmlText@@UAEPBDPBDPAVTiXmlParsingData@@W4TiXmlEncoding@@@Z)"
1>tinyxml.obj : error LNK2001: неразрешенный внешний символ ""public: virtual char const * __thiscall TiXmlDeclaration::Parse(char const *,class TiXmlParsingData *,enum TiXmlEncoding)" (?Parse@TiXmlDeclaration@@UAEPBDPBDPAVTiXmlParsingData@@W4TiXmlEncoding@@@Z)"
1>tinyxml.obj : error LNK2001: неразрешенный внешний символ ""public: virtual char const * __thiscall TiXmlUnknown::Parse(char const *,class TiXmlParsingData *,enum TiXmlEncoding)" (?Parse@TiXmlUnknown@@UAEPBDPBDPAVTiXmlParsingData@@W4TiXmlEncoding@@@Z)"
1>tinyxml.obj : error LNK2001: неразрешенный внешний символ ""public: virtual char const * __thiscall TiXmlAttribute::Parse(char const *,class TiXmlParsingData *,enum TiXmlEncoding)" (?Parse@TiXmlAttribute@@UAEPBDPBDPAVTiXmlParsingData@@W4TiXmlEncoding@@@Z)"
1>c:\users\pavel\documents\visual studio 2010\Projects\TestTinyXML-ConsApp\Debug\TestTinyXML-ConsApp.exe : fatal error LNK1120: 14 неразрешенных внешних элементов
1>
Подскажите как решить вопрос.
Avazart
 Аватар для Avazart
6897 / 5137 / 252
Регистрация: 10.12.2010
Сообщений: 22,578
Записей в блоге: 17
12.07.2013, 14:12     Работа с tinyxml ошибки LNK 2019 и LNK 2001 #4
Блин да вы чЁ читать разучились или со зрением плохо?
Цитата Сообщение от Avazart Посмотреть сообщение
А кто саму либу подключать будет ?
C++
1
#pragma comment (lib, "tinyxml.lib")
Добавлено через 2 минуты
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include "stdafx.h"
#include <iostream>
 
#include "tinyxml/tinyxml.h"
#pragma comment (lib, "tinyxml.lib")
 
int _tmain(int argc, _TCHAR* argv[])
{
    TiXmlDocument x ("1.xml");
    x.LoadFile ();
    x.Print(); //выводит весь файл
    std::system ("PAUSE");
    return 0;
}
Omnio
0 / 0 / 0
Регистрация: 19.07.2009
Сообщений: 41
12.07.2013, 15:10     Работа с tinyxml ошибки LNK 2019 и LNK 2001 #5
Цитата Сообщение от Avazart Посмотреть сообщение
Блин да вы чЁ читать разучились или со зрением плохо?


Добавлено через 2 минуты
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include "stdafx.h"
#include <iostream>
 
#include "tinyxml/tinyxml.h"
#pragma comment (lib, "tinyxml.lib")
 
int _tmain(int argc, _TCHAR* argv[])
{
    TiXmlDocument x ("1.xml");
    x.LoadFile ();
    x.Print(); //выводит весь файл
    std::system ("PAUSE");
    return 0;
}

Да Выспавшимся надо программировать и форум читать это чистейшая правда. Спасибо за ответ ещё раз Avazart.

Однако окончательное решение в моём случае в дополнение к подключению tinyxml.lib который забыл добавить из архива, что скачал с tinyxml-евского офф. сайта ВЫГЛЯДЕЛО ТАК (мало ли кому в дальнейшем ещё поможет):

1) Для 4-ёх файлов tinyxml.h, tinyxml.cpp, tinystr.h, tinystr.cpp в проекте "Добавить" => "Новый Фильтр" и поместить их туда.
Положить все 4 файла в эту отдельную папку, обозвать папку также, как и обозвали папку (фильтр) в проекте.
Наконец указать путь #include "ваша_папка/tinyxml.h"

2) Перейти в "Проект" => "Свойства" => В пункте "Использование MFC" выбрать пункт "Использовать MFC в статической библиотеке"


Только после этого всё заработало.
Avazart
 Аватар для Avazart
6897 / 5137 / 252
Регистрация: 10.12.2010
Сообщений: 22,578
Записей в блоге: 17
12.07.2013, 15:16     Работа с tinyxml ошибки LNK 2019 и LNK 2001 #6
Если используется ltinyxml.lib то скорее всего tinyxml.cpp не нужен.
Lynatik001
 Аватар для Lynatik001
34 / 28 / 2
Регистрация: 28.09.2012
Сообщений: 560
02.08.2014, 21:29     Работа с tinyxml ошибки LNK 2019 и LNK 2001 #7
У меня такие же ошибки, но у меня же нету файла
#pragma comment (lib, "tinyxml.lib")
у мну с офф сайта проектом скачало!!! либов там нету

Добавлено через 48 минут
C++
1
2
3
Error   4   error LNK2019: unresolved external symbol "public: class TiXmlElement const * __thiscall TiXmlNode::FirstChildElement(char const *)const " (?FirstChildElement@TiXmlNode@@QBEPBVTiXmlElement@@PBD@Z) referenced in function "public: class TiXmlElement * __thiscall TiXmlNode::FirstChildElement(char const *)" (?FirstChildElement@TiXmlNode@@QAEPAVTiXmlElement@@PBD@Z)  C:\Users\Yura\Desktop\proekts\naruto\naruto\Antimate.obj
Error   5   error LNK2019: unresolved external symbol "public: char const * __thiscall TiXmlElement::Attribute(char const *)const " (?Attribute@TiXmlElement@@QBEPBDPBD@Z) referenced in function "private: __thiscall Animate::Animate(void)" (??0Animate@@AAE@XZ) C:\Users\Yura\Desktop\proekts\naruto\naruto\Antimate.obj
Error   6   error LNK2019: unresolved external symbol "public: __thiscall TiXmlDocument::TiXmlDocument(char const *)" (??0TiXmlDocument@@QAE@PBD@Z) referenced in function "private: __thiscall Animate::Animate(void)" (??0Animate@@AAE@XZ)    C:\Users\Yura\Desktop\proekts\naruto\naruto\Antimate.obj
Avazart
 Аватар для Avazart
6897 / 5137 / 252
Регистрация: 10.12.2010
Сообщений: 22,578
Записей в блоге: 17
02.08.2014, 21:32     Работа с tinyxml ошибки LNK 2019 и LNK 2001 #8
Откуда качали ? ссылку ?

tinyxml по-мойму исходниками идет, без lib и dll, поэтому тупо подключаешь все h,c,cpp,hpp файлы что есть в проект и используешь.
Lynatik001
 Аватар для Lynatik001
34 / 28 / 2
Регистрация: 28.09.2012
Сообщений: 560
02.08.2014, 21:55     Работа с tinyxml ошибки LNK 2019 и LNK 2001 #9
Цитата Сообщение от Avazart Посмотреть сообщение
Откуда качали ? ссылку ?
tinyxml по-мойму исходниками идет, без lib и dll, поэтому тупо подключаешь все h,c,cpp,hpp файлы что есть в проект и используешь.
sourceforge.net/projects/tinyxml/
Да там проект скачал выходит. Взял файлы:
tinystr.h
tinystr.cpp
tinyxml.h
tinyxml.cpp
tinyxmlerror.cpp
tinyxmlparser.cpp
Кинул в папку tiny с проектом, подключаю
C++
1
#include "tiny\tinyxml.h"
вот при выполнении
C++
1
2
3
4
        TiXmlDocument *xml_file = new TiXmlDocument("C:\\Users\\Yura\\Desktop\\proekts\\naruto\\naruto\\tiny\\spritenaruto.xml");
        TiXmlElement *xml_level = 0;
        xml_level = xml_file->FirstChildElement("animation");
        string asd = xml_level->Attribute("title");
ошибки выдает выше что я написал
Avazart
 Аватар для Avazart
6897 / 5137 / 252
Регистрация: 10.12.2010
Сообщений: 22,578
Записей в блоге: 17
02.08.2014, 22:05     Работа с tinyxml ошибки LNK 2019 и LNK 2001 #10
Ну во первых вероятно
C++
1
#include "tiny/tinyxml.h"  // слеш
Во вторых в проект все файлы подключил?
Lynatik001
 Аватар для Lynatik001
34 / 28 / 2
Регистрация: 28.09.2012
Сообщений: 560
03.08.2014, 01:18     Работа с tinyxml ошибки LNK 2019 и LNK 2001 #11
Цитата Сообщение от Avazart Посмотреть сообщение
Во вторых в проект все файлы подключил?
а как подключить просто в соурс фалы кинуть все файлы?
Avazart
 Аватар для Avazart
6897 / 5137 / 252
Регистрация: 10.12.2010
Сообщений: 22,578
Записей в блоге: 17
03.08.2014, 01:32     Работа с tinyxml ошибки LNK 2019 и LNK 2001 #12
Добавить в проект.
Lynatik001
 Аватар для Lynatik001
34 / 28 / 2
Регистрация: 28.09.2012
Сообщений: 560
03.08.2014, 01:36     Работа с tinyxml ошибки LNK 2019 и LNK 2001 #13
Цитата Сообщение от Avazart Посмотреть сообщение
Добавить в проект.
как
Avazart
 Аватар для Avazart
6897 / 5137 / 252
Регистрация: 10.12.2010
Сообщений: 22,578
Записей в блоге: 17
03.08.2014, 01:37     Работа с tinyxml ошибки LNK 2019 и LNK 2001 #14
Как обычно добавляются новые файлы.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.08.2014, 15:14     Работа с tinyxml ошибки LNK 2019 и LNK 2001
Еще ссылки по теме:

C++ LNK Ошибки - 2019 и 1120
Шаблон с++ (Ошибка LNK 2019) C++
C++ Error LNK 2019. Внешняя библиотека DocxFactory

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Lynatik001
 Аватар для Lynatik001
34 / 28 / 2
Регистрация: 28.09.2012
Сообщений: 560
03.08.2014, 15:14     Работа с tinyxml ошибки LNK 2019 и LNK 2001 #15
Цитата Сообщение от Avazart Посмотреть сообщение
Как обычно добавляются новые файлы.
обычно ето как. Они же просто аш файлы и спп я просто кинул в папку с проектом,и перетащил файлы в Source files

Добавлено через 2 часа 39 минут
Даже это не помогло ибо требует вставить вфайлы tinyxml и в tinystr
Код
Error	6	error C1010: unexpected end of file while looking for precompiled header. Did you forget to add '#include "stdafx.h"' to your source?	c:\users\yura\desktop\proekts\naaruto\naaruto\tiny\tinyxmlparser.cpp	1640
Error	8	error C1010: unexpected end of file while looking for precompiled header. Did you forget to add '#include "stdafx.h"' to your source?	c:\users\yura\desktop\proekts\naaruto\naaruto\tiny\tinyxmlerror.cpp	53
Дак что думаю это не то
1) Для 4-ёх файлов tinyxml.h, tinyxml.cpp, tinystr.h, tinystr.cpp в проекте "Добавить" => "Новый Фильтр" и поместить их туда.
Положить все 4 файла в эту отдельную папку, обозвать папку также, как и обозвали папку (фильтр) в проекте.
Наконец указать путь #include "ваша_папка/tinyxml.h"

2) Перейти в "Проект" => "Свойства" => В пункте "Использование MFC" выбрать пункт "Использовать MFC в статической библиотеке"


Только после этого всё заработало.
Добавлено через 10 часов 37 минут
ау)
Yandex
Объявления
03.08.2014, 15:14     Работа с tinyxml ошибки LNK 2019 и LNK 2001
Ответ Создать тему
Опции темы

Текущее время: 19:45. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru