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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 132, средняя оценка - 4.82
stawerfar
141 / 55 / 4
Регистрация: 14.12.2010
Сообщений: 347
Записей в блоге: 1
#1

error LNK1120: 2 неразрешенных внешних элементов - C++

24.03.2012, 19:24. Просмотров 18963. Ответов 12
Метки нет (Все метки)

Всем привет!
В чем может быть проблема и как её устранить!
пишет вот так
C++
1
2
3
Ошибка  3   error LNK1120: 2 неразрешенных внешних элементов    D:\Project_VS_2010\C++\garbage\encryption\Debug\encryption.exe  encryption
Ошибка  2   error LNK2019: ссылка на неразрешенный внешний символ "public: __thiscall text::text(void)" (??0text@@QAE@XZ) в функции _main   D:\Project_VS_2010\C++\garbage\encryption\encryption\_main.obj  encryption
Ошибка  1   error LNK2019: ссылка на неразрешенный внешний символ "public: virtual __thiscall text::~text(void)" (??1text@@UAE@XZ) в функции _main  D:\Project_VS_2010\C++\garbage\encryption\encryption\_main.obj  encryption
Я пишу много файловую прогу в main объявил заголовочник класса #include"text.h"
в этом файле все необходимые библиотеки плюс описания класса "text". Есть ещё файл описания методов класса "text" записанный в text.cpp, в нем тоже #include"text.h"!
В чём может быть проблема подскажите, если нужно могу выложить код!
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.03.2012, 19:24
Здравствуйте! Я подобрал для вас темы с ответами на вопрос error LNK1120: 2 неразрешенных внешних элементов (C++):

Error LNK1120: неразрешенных внешних элементов: 1 - C++
#include <iostream> #include <fstream> #include <locale.h> #include <stdlib.h> #include <conio.h> using namespace std; void...

error LNK1120: 1 неразрешенных внешних элементов - C++
/*Person.h*/ class Person { char Name; char FatherName; char SurName; int Byyyy; int Bmm; int Bdd; ...

Error LNK1120: неразрешенных внешних элементов: 2 - C++
Доброго времени суток. Не могу понять в чем ошибка. Подскажите, пожалуйста. Задание: Программно реализовать следующие методы сортировки...

Error LNK1120: неразрешенных внешних элементов: 1 - C++
Подскажите где ошибка??? //файл sourse.h #include <iostream> using namespace std; template <class T> T ABS(T...

Fatal error LNK1120: 1 неразрешенных внешних элементов - C++
Товарищи помогите второй день мучаюсь, не могу найти ошибку. В ООП я новичок и я так думаю ошибка в структуре работы алгоритма объектов...

fatal error LNK1120: 1 неразрешенных внешних элементов - C++
не понимаю где и в чем проблема???? #include<iostream> using namespace std; void main() {float a,b,c,p,S,max,min,sr; ...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
zss
Модератор
Эксперт С++
6382 / 5947 / 1927
Регистрация: 18.12.2011
Сообщений: 15,264
Завершенные тесты: 1
24.03.2012, 19:47 #2
В text.h объявлен конструктор
text();
и деструктор
~text();
однако их реализация в text.cpp отсутствует.
1
stawerfar
141 / 55 / 4
Регистрация: 14.12.2010
Сообщений: 347
Записей в блоге: 1
24.03.2012, 19:49  [ТС] #3
Цитата Сообщение от zss Посмотреть сообщение
однако их реализация в text.cpp отсутствует
text.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
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
#include "text.h"
 
//------------------------------------------------------------------------------------------------------------------
//инициализация статических полей
std::fstream text::sfile;
std::string text::staticline;
std::string text::statickey;
std::string text::staticresultline;
//------------------------------------------------------------------------------------------------------------------
//конструктрор без параметров
text::text(void)
{}
 
//------------------------------------------------------------------------------------------------------------------
//конструктор с 2-мя параметрами
text::text(const char*const cchcaddress,const char*const cchckey)
{
    text::updata(cchcaddress,cchckey);//вызов метода для инициализации полей
}
 
//------------------------------------------------------------------------------------------------------------------
//виртуальный диструктор
text::~text(void)
{
    if(sfile)//если поток незакрыт закрываем его
    {sfile.close();}
}
 
//------------------------------------------------------------------------------------------------------------------
//инициализация полей
void text:: updata(const char*const cchcaddress,const char*const cchckey)
{
    //отрыть поток если он небыл уже открыт до этого
    if(!sfile)
    sfile.open(cchcaddress,std::ios::in);
    //если не удалось отркрыть поток
    if(!sfile)
    {
        //смена кодировки для вывода Русского языка в консоли
        setlocale(LC_ALL,"Russian_Russia.1251");
        //если badbit или faibit
        if(sfile.bad())
        {
            std::cerr<<"Невозможно открыть файл!";
            std::cerr<<"Неисправимая ошибка!\n";
            system("pause");//даём возможность взглянуть на сообщение
            setlocale(LC_ALL,"Russian_Russia.866");//возврат к стандартной кодировке
            exit(-1);
        }
        else if(sfile.fail())
        {
            std::cerr<<"Невозможно открыть файл!";
            std::cerr<<"Файл либо не существует либо не правильно указан путь к файлу!\n";
            system("pause");//пауза
            setlocale(LC_ALL,"Russian_Russia.866");//возврат к стандартной кодировке
            exit(-1);
        }
 
    }
    sfile.close();//закрываем поток для перезадачи атрибутов открытия
    sfile.open(cchcaddress,std::ios::in|std::ios::out|std::ios::binary);
    char ch;//для временного хранения символов
    sfile.get(ch);//задаем первое значение символа
    while(sfile)//продолжать пока не дойдём до конца файла
    {
        staticline+=ch;//добовляем посимвольно значения из файла в поле 
        sfile.get(ch);
    }
    //запись текста из файла в поле класса
    statickey=cchckey;//копирование ключа
 
}
 
//------------------------------------------------------------------------------------------------------------------
//статический метод для записи на диск
int text::write(void)
{
    if(!sfile)//если поток не открыт ничего не предпринемаем
    {   
        setlocale(LC_ALL,"Russian_Russia.1251");
        std::cerr<<"Провал записи!Закрыт поток\n";
        setlocale(LC_ALL,"Russian_Russia.866");
        return 1;
    }
    sfile<<staticresultline<<std::endl;//запись в файл
    return 0;
}
 
//------------------------------------------------------------------------------------------------------------------
//статический метод для чтения с диска
int text::read(void)
{
    if(!sfile)//если поток не открыт то ничего не предпринемаем
    {   
        setlocale(LC_ALL,"Russian_Russia.1251");
        std::cerr<<"Провал записи!Закрыт поток\n";
        setlocale(LC_ALL,"Russian_Russia.866");
        return 1;
    }
    char ch;//для временного хранения символов
    sfile.get(ch);//задаем первое значение символа
    while(sfile)//продолжать пока не дойдём до конца файла
    {
        staticline+=ch;//добовляем посимвольно значения из файла в поле 
        sfile.get(ch);
    }
    return 0;
}
//------------------------------------------------------------------------------------------------------------------
//фиктивная зашифровать разшифровать
int text:: unstencry(void)
{return 1;}
 
void text:: show(void)
{std::cout<<staticline<<statickey<<staticresultline<<std::endl;}
0
igorrr37
1647 / 1275 / 133
Регистрация: 21.12.2010
Сообщений: 1,932
Записей в блоге: 7
24.03.2012, 19:59 #4
вместо text.h в main приинклудь text.cpp
1
stawerfar
141 / 55 / 4
Регистрация: 14.12.2010
Сообщений: 347
Записей в блоге: 1
24.03.2012, 20:01  [ТС] #5
Цитата Сообщение от igorrr37 Посмотреть сообщение
вместо text.h в main приинклудь text.cpp
Нет не катет ещё больше и другого рода стало ошибок писать!
C++
1
2
3
4
5
6
7
8
9
10
Ошибка  10  error LNK1169: обнаружен многократно определенный символ - один или более   D:\Project_VS_2010\C++\garbage\ecryption\Debug\ecryption.exe    1   1   ecryption
Ошибка  7   error LNK2005: "public: static class std::basic_fstream<char,struct std::char_traits<char> > text::sfile" (?sfile@text@@2V?$basic_fstream@DU?$char_traits@D@std@@@std@@A) уже определен в text.obj  D:\Project_VS_2010\C++\garbage\ecryption\ecryption\main3.obj    ecryption
Ошибка  6   error LNK2005: "public: static class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > text::statickey" (?statickey@text@@2V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@A) уже определен в text.obj    D:\Project_VS_2010\C++\garbage\ecryption\ecryption\main3.obj    ecryption
Ошибка  8   error LNK2005: "public: static class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > text::staticline" (?staticline@text@@2V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@A) уже определен в text.obj  D:\Project_VS_2010\C++\garbage\ecryption\ecryption\main3.obj    ecryption
Ошибка  9   error LNK2005: "public: static class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > text::staticresultline" (?staticresultline@text@@2V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@A) уже определен в text.obj  D:\Project_VS_2010\C++\garbage\ecryption\ecryption\main3.obj    ecryption
Ошибка  1   error LNK2005: "public: static void __cdecl text::updata(char const * const,char const * const)" (?updata@text@@SAXQBD0@Z) уже определен в text.obj D:\Project_VS_2010\C++\garbage\ecryption\ecryption\main3.obj    ecryption
Ошибка  3   error LNK2005: "public: virtual int __thiscall text::read(void)" (?read@text@@UAEHXZ) уже определен в text.obj  D:\Project_VS_2010\C++\garbage\ecryption\ecryption\main3.obj    ecryption
Ошибка  4   error LNK2005: "public: virtual int __thiscall text::unstencry(void)" (?unstencry@text@@UAEHXZ) уже определен в text.obj    D:\Project_VS_2010\C++\garbage\ecryption\ecryption\main3.obj    ecryption
Ошибка  2   error LNK2005: "public: virtual int __thiscall text::write(void)" (?write@text@@UAEHXZ) уже определен в text.obj    D:\Project_VS_2010\C++\garbage\ecryption\ecryption\main3.obj    ecryption
Ошибка  5   error LNK2005: "public: void __thiscall text::show(void)" (?show@text@@QAEXXZ) уже определен в text.obj D:\Project_VS_2010\C++\garbage\ecryption\ecryption\main3.obj    ecryption
0
zss
Модератор
Эксперт С++
6382 / 5947 / 1927
Регистрация: 18.12.2011
Сообщений: 15,264
Завершенные тесты: 1
24.03.2012, 20:01 #6
Цитата Сообщение от igorrr37 Посмотреть сообщение
вместо text.h в main приинклудь text.cpp
Нужно просто text.cpp добавить в проект.
Приинллюдить его считается дурным тоном.
3
stawerfar
141 / 55 / 4
Регистрация: 14.12.2010
Сообщений: 347
Записей в блоге: 1
24.03.2012, 20:05  [ТС] #7
Да всё я изначально прикрепил куда следует, я даже пересоздавал проект и копировал заново текст файлов ошибка остается.
0
Миниатюры
error LNK1120: 2 неразрешенных внешних элементов  
zss
Модератор
Эксперт С++
6382 / 5947 / 1927
Регистрация: 18.12.2011
Сообщений: 15,264
Завершенные тесты: 1
24.03.2012, 20:07 #8
А ничего, что он в списке файлов ресурсов, а не в списке файлов исходного кода?

Добавлено через 1 минуту
Выложите text.h тоже
1
stawerfar
141 / 55 / 4
Регистрация: 14.12.2010
Сообщений: 347
Записей в блоге: 1
24.03.2012, 20:09  [ТС] #9
Разницы нет, я так и так пробовал. Тем более что я создавал класс конструктором, в этом случае MSStudio само создает и ставит куда следует.

Добавлено через 1 минуту
text.h
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
#pragma once
//объявления
#include<fstream>
#include<iostream>
#include<string>
#include<typeinfo>
//базовый класс текст
class text
{
    //protected:
    public:
        static std::fstream sfile;//указатель на поток
        static std::string staticline;//исходный текст
        static std::string statickey;//ключ
        static std::string staticresultline;//зашифрованый текст
        //конструктрор без параметров
        text(void);
        //конструктор с 2-мя параметрами
        text(const char*const,const char*const);
        //виртуальный диструктор
        virtual ~text(void);
        //статический метод инициализация полей
        static void updata(const char*const,const char*const);
        //запись на диск
        virtual int write(void);
        //чтение с диска
        virtual int read(void);
        //фиктивная зашифровать разшифровать
        virtual int unstencry(void);//=0;
        void show(void);
 
};
0
zss
Модератор
Эксперт С++
6382 / 5947 / 1927
Регистрация: 18.12.2011
Сообщений: 15,264
Завершенные тесты: 1
24.03.2012, 20:15 #10
У меня в VS 2008 собирается без ошибок.
Попробуйте в text.h объявить их так
C++
1
2
    text(){}
            ~text(){}
Добавлено через 34 секунды
А из text.cpp выкинуть
1
stawerfar
141 / 55 / 4
Регистрация: 14.12.2010
Сообщений: 347
Записей в блоге: 1
24.03.2012, 20:18  [ТС] #11
Да помогло!!! Спасибо большое!!! А объяснить сможешь почему так произошло что бы в будущем избегать подобного?
0
zss
Модератор
Эксперт С++
6382 / 5947 / 1927
Регистрация: 18.12.2011
Сообщений: 15,264
Завершенные тесты: 1
24.03.2012, 20:26 #12
Цитата Сообщение от stawerfar Посмотреть сообщение
А объяснить сможешь почему так произошло что бы в будущем избегать подобного?
Не могу, у меня компилируется изначальный код.
Какой-то глюк в Вашем компиляторе.
А идея возникла так: описать отсутствующие функции как можно раньше.
1
stawerfar
141 / 55 / 4
Регистрация: 14.12.2010
Сообщений: 347
Записей в блоге: 1
24.03.2012, 20:28  [ТС] #13
В любом случае спасибо! Вроде нелепость а пол дня потерял!!!
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.03.2012, 20:28
Привет! Вот еще темы с ответами:

C++ fatal error LNK1120: 1 неразрешенных внешних элементов - C++
Программа иллюстрирующая работу бинарных операторов // BitTest - инициируются две переменные и // выводятся результаты выполнения ...

Ошибка 3 error LNK1120: неразрешенных внешних элементов: 2 - C++
Добрый день. Возникла такая проблема. При компиляции показывает 3 ошибки. Ошибка 1 error LNK2019: ссылка на неразрешенный внешний...

Fatal error LNK1120: 2 неразрешенных внешних элементов - C++
привет всем , столкнулся с такой проблемой , 1&gt;main.obj : error LNK2001: неразрешенный внешний символ...

Fatal error LNK1120: неразрешенных внешних элементов: 11 - C++
Добрый вечер, нужно написать программу, которая бы запускала виртуальную машину(WMware), делала снэпшот и откатывала до предыдущего...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
24.03.2012, 20:28
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru