Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.93/15: Рейтинг темы: голосов - 15, средняя оценка - 4.93
0 / 0 / 0
Регистрация: 08.01.2015
Сообщений: 49
1

Ошибка LNK1120: 4 unresolved externals

21.12.2015, 04:59. Показов 2902. Ответов 1

Author24 — интернет-сервис помощи студентам
Добрый день. Помогите решить проблему с возникающей ошибкой. Причину самостоятельно найти не могу.
Заранее благодарен!

Содержание ошибки:
1>ConsoleApplication2.obj : error LNK2019: unresolved external symbol "public: __thiscall Slovar<class Element>::Slovar<class Element>(void)" (??0?$Slovar@VElement@@@@QAE@XZ) referenced in function _main
1>ConsoleApplication2.obj : error LNK2019: unresolved external symbol "public: __thiscall Slovar<class Element>::~Slovar<class Element>(void)" (??1?$Slovar@VElement@@@@QAE@XZ) referenced in function _main
1>ConsoleApplication2.obj : error LNK2019: unresolved external symbol "public: void __thiscall Slovar<class Element>::Print(void)" (?Print@?$Slovar@VElement@@@@QAEXXZ) referenced in function _main
1>ConsoleApplication2.obj : error LNK2019: unresolved external symbol "public: void __thiscall Slovar<class Element>::AddElem(class Element &)" (?AddElem@?$Slovar@VElement@@@@QAEXAAVElement@@@Z) referenced in function _main
1>D:\ТП\Курсовая\ConsoleApplication2\Debug\ConsoleApplication2.exe : fatal error LNK1120: 4 unresolved externals

Листинг программы:
Element.h
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#pragma once
class Element
{
private:
    char* ENG;
    char* RUS;
    Element* Next;
    Element* Start;
    Element* Cur;
 
public:
    Element();
    ~Element();
    char* GetRUS();
    char* GetENG();
    Element(char* ENG, char* RUS);
    Element(Element&Element1);
    void SetNext(Element* Next1);
    Element* GetNext(void);
};
Element.cpp
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
#include "stdafx.h"
#include "Element.h"
#include "Slovar.h"
#include "Slovar.h"
#include <stdlib.h>
#include <stdio.h>
#include <conio.h>
#include <string.h>
 
Element::Element()
:ENG(NULL)
, RUS(NULL)
{
}
 
 
Element::~Element()
{
}
 
Element::Element(char* ENG1, char* RUS1)
{
    ENG = new char[strlen(ENG1)+1];
    strcpy_s(ENG, strlen(RUS1) + 1, ENG1);
    RUS = new char[strlen(RUS1)+1];
    strcpy_s(RUS, strlen(RUS1) + 1, RUS1);
}
Element::Element(Element&Element1)
{
    ENG = new char[strlen(Element1.ENG)+1];
    strcpy_s(ENG, strlen(Element1.ENG), Element1.ENG);
    RUS = new char[strlen(Element1.RUS)+1];
    strcpy_s(RUS, strlen(Element1.RUS), Element1.RUS);
}
void Element::SetNext(Element* Next1)
{
    Next = Next1;
}
Element*Element::GetNext(void)
{
    return Next;
}
 
char* Element::GetRUS(void)
{
    return RUS;
}
char* Element::GetENG(void)
{
    return ENG;
}
Slovar.h
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#pragma once
#include "Element.h"
template <class T>
class Slovar
{
private:
    struct Elem
    {
        T Data;
        Elem* Next;
    };
    char* ENG;
    char* RUS;
    Elem* Start;
public:
    Slovar();
    ~Slovar();
    Slovar(char* ENG1, char*RUS1);
    void Print(void);
    void AddElem(T&Data1);
    T* Poisk(char ENG);
};
Slovar.cpp
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
#include "stdafx.h"
#include "Slovar.h"
#include <iostream>
#include <math.h>
#include <stdlib.h>
#include <stdio.h>
#include <conio.h>
#include "windows.h"
#include "Element.h"
using namespace std;
template <class T>
Slovar<T>::Slovar()
{
    Start = NULL;
}
template <class T>
Slovar<T>::~Slovar()
{
}
template <class T>
Slovar<T>::Slovar(char* ENG1, char*RUS1)
{
    RUS = new char[strlen(RUS1) + 1];
    strcpy_s(RUS, strlen(RUS1) + 1, RUS1);
    ENG = new char[strlen(ENG1) + 1];
    strcpy_s(ENG, strlen(ENG1) + 1, ENG1);
}
template <class T>
void Slovar<T>::Print(void)
{
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
    printf("\nENG = %s\n", ENG);
    cout << "Rus = " << GetRUS()<<endl;
}
template <class T>
void Slovar<T>::AddElem(T&Data1)
{
    Elem* Cur;
    Elem* Tmp;
    Tmp = new Elem;
    Tmp->Data = Data1;
    Tmp->Next = NULL;
    if (Start == NULL)
        Start = Tmp;
    else{
        for (Cur = Start; Cur->Next != NULL; Cur = Cur->Next);
        Cur->Next = Tmp;
    }
}
template <class T>
T* Slovar<T>::Poisk(char ENG)
{
    Elem* Cur;
    T* Empty;
    for (Cur = Start; Cur != NULL; Cur = Cur->Next)
    {
        if (strcmp(Cur->Data.GetENG(),ENG))
        {
            return &(Cur->Data);
        }
    }
    printf("\nTakogo slova v slovare net!!! \n");
    Empty = new T;
    return(Empty);
}
И "Главный" файл
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#include "stdafx.h"
#include "Slovar.h"
#include <iostream>
#include <math.h>
#include <stdlib.h>
#include <stdio.h>
#include <conio.h>
#include "windows.h"
#include "Element.h"
using namespace std;
 
 
int main()
{
    Element M1("Input", "Ввод");
    Element M2("Cat", "Кошка");
    Element M3("Dog", "Собака");
    Element* M;
    char ENG;
    typedef Slovar<Element> SP;
    SP R;
    R.AddElem(M1);
    R.AddElem(M2);
    R.AddElem(M3);
    R.Print();
    cout << "Vvedite slovo dlyz pereloda na English: " << endl;
    cin >> ENG;
    M=R.Poisk(ENG);
    cout << "Perevod: " << M->GetENG() << " = " << M->GetRUS();
    system ("pause");
    return 0;
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
21.12.2015, 04:59
Ответы с готовыми решениями:

LNK1120: 2 unresolved externals | Glew | GLFW
Выходит ошибки при компелирование кода, надеюсь кто-нибудь подскажет, в чем может быть проблема....

FATAL ERROR LNK1120: 1 unresolved externals SOS!
#include &lt;stdio.h&gt; #include &lt;conio.h&gt; #include &lt;math.h&gt; int main() { int a, factorial(int i);...

Помогите исправить ошибку в коде (fatal error LNK1120: unresolved externals) я новичек
Народ, всем доброго вечера! помогите пожалуйста найти линк еррор. Вот мой код // SavingsAccount.h...

Unresolved externals
Здравствуйте. Объявил такую функцию : std::string SplitFileName ( std::string&amp; data) {...

1
Модератор
Эксперт С++
13507 / 10757 / 6412
Регистрация: 18.12.2011
Сообщений: 28,712
21.12.2015, 08:08 2
1. Все cpp файлы должны компилироваться в одной единице трансляции (одном проекте).

2. По поводу #include
-не стоит подключать лишние, например в Element.cpp кроме Element.h больше ничего не нужно.
-подключайте сначала системные, а потом собственные (чтобы в случае переопределения переменных, собственные переменные перекрывали системные).
-не смешивайте сишные и С++ файлы ( например, зачем одновременно подключаете iostrem и stdio.h).
0
21.12.2015, 08:08
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
21.12.2015, 08:08
Помогаю со студенческими работами здесь

3 unresolved externals
#include &lt;iostream&gt; #include &lt;string&gt; #include &quot;conio.h&quot; #include &lt;vector&gt; #include &lt;set&gt;...

Unresolved externals в ооп
Добрый день, переделывал конструкторы в одной лабе, вроде все сделал, но теперь выдает две ошибки...

Учебное расписание: Unresolved externals
Добрый день! Мне нужно создать программу в Microsoft Visual Studio 2005 для введения данных, их...

Unresolved externals при подключении mpi
Здравствуйте! Установил библиотеку MPI с оффсайта. Написал вот такой кодик. Программа при...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru