Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.59/29: Рейтинг темы: голосов - 29, средняя оценка - 4.59
2 / 2 / 2
Регистрация: 27.07.2012
Сообщений: 40

fatal error LNK1169: one or more multiply defined symbols found

05.07.2013, 09:51. Показов 5864. Ответов 16
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго всем времени суток! Никак не могу разобраться в чём дело... Помогите пожалуйста!
stdafx.h
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#pragma once
 
#include "targetver.h"
 
#include <stdio.h>
#include <tchar.h>
 
#include <conio.h>
#include <string.h>
#include <iostream>
#include <stdlib.h>
using namespace std;
#include <Windows.h>
Get_String_Getche.h
C++
1
2
3
#include "stdafx.h"
 
void get_str(char* str);
Very_Long_Number.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
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
#include "stdafx.h"
#include "Get_String_Getche.h"
 
extern const int SZ = 1000;
enum posneg{pos, neg};
 
class very_l_numb
{
private:
    char number[SZ];
    int numb_len;
    int signs_after_comma;
    posneg pn;
    very_l_numb mult_on_10(const very_l_numb);
    very_l_numb mult_on_digit(const int);
    void ld_to_str(const long double, char*);
public:
    very_l_numb()
    {
        number[0] = '\0';
        numb_len = 0;
        signs_after_comma = 0;
        pn = pos;
    }
    very_l_numb(const char str[])
    {
        int count_len = 0;
        int sign = 0;
        int slen = strlen(str);
        signs_after_comma = 0;
        for(int j = 0; j < slen; j++)
        {
            if(str[j] == ',')
            {
                if(signs_after_comma != 0)
                {
                    cout << "Ошибка, запятая уже была отмечена! Конструктор номер два. " << endl;
                    system("pause");
                    exit(0);
                }
                else
                    signs_after_comma = j;
            }
            else
            {
                
                if(str[j] >= '0' && str[j] <= '9')
                {
                    number[j] = str[j];
                    count_len++;
                }
                else if(str[j] == '+' || str[j] == '-')
                {
                    if(sign == 0)
                        sign = 1;
                    else
                    {
                        cout << "В числе присутствует больше одного знака! Конструктор номер два." << endl;
                        system("pause");
                        exit(0);
                    }
                }
                else
                {
                    cout << "В числе обнаружены инородные символы! Конструктор номер два." << endl;
                    system("pause");
                    exit(0);
                }
            }
        }
        number[numb_len] = '\0';
        strrev(number);
        numb_len = count_len;
        if(str[slen - 1] == '-')
            pn = neg;
        else
            pn = pos;
    }
    very_l_numb(const long double ld)
    {
        char str[SZ];
        ld_to_str(ld, str);
        very_l_numb temp(str);
        strcpy(number, temp.number);
        numb_len = temp.numb_len;
        signs_after_comma = temp.signs_after_comma;
        pn = temp.pn;
    }
    void show_numb();
    void get_numb();
    very_l_numb operator *(very_l_numb);
    very_l_numb operator +(very_l_numb);
    very_l_numb operator /(very_l_numb);
    very_l_numb operator -(very_l_numb);
};
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include "stdafx.h"
#include "Very_Long_Number.h"
 
extern const int SZ;
 
int _tmain(int argc, _TCHAR* argv[])
{
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
    setlocale(LC_ALL, "rus");
    very_l_numb test((long double)10);
    test.show_numb();
    system("pause");
    return 0;
}
Get_String_Getche.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
#include "stdafx.h"
#include "Get_String_Getche.h"
 
extern const int SZ;
 
void get_str(char* str)
{
    int count = 0;
    char ch = 8;
    do
    {
        if(count == SZ)
        {
            cout << endl << "Строка может содержать только " << SZ - 1 << " символов." << endl
                << "Попрубуйте ещё раз." << endl;
            count = 0;
        }
        *(str + count++) = getche();
        if(*(str + count - 1) == 8)
        {
            if(count != 1)
            {
                cout << " " << ch;;
                count -= 2;
            }
            else
                count--;
        }
    }while(*(str + (count - 1)) != '\r');
    str[count - 1] = '\x0';
    cout << endl;
}
Very_Long_Number.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
#include "stdafx.h"
#include "Very_Long_Number.h"
 
void very_l_numb::ld_to_str(const long double ld, char* str)
{
    double d1;
    d1 = ld;
    int j = 0, i, a = 0;
    while(d1 > 1)
    {
        d1 /= 10;
        j++;
    }
    while(d1 != 0)
    {
        d1 *= 10;
        i = d1;
        d1 -= i;
        if(a == j && d1 != 0)
            str[a++] = ',';
        else
            str[a++] = i + '0';
    }
    str[a] = '\0';
}
 
void very_l_numb::show_numb()
{
    if(signs_after_comma == numb_len)
        cout << '0';
    for(int j = numb_len; j > 0 + 1; j--)
    {
        if(j == signs_after_comma)
            cout << ',';
        cout << number[j - 1];
    }
}
Выдаёт вот это: fatal error LNK1169: one or more multiply defined symbols found

Добавлено через 18 минут
Эта проблема возникла после подключения Very_Long_Number.cpp
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
05.07.2013, 09:51
Ответы с готовыми решениями:

Fatal error LNK1169: one or more multiply defined symbols found
вроде прога работала, но сейчас выдает ошибку и все тут D:\VS 10\kurs\Debug\kurs.exe : fatal error LNK1169: one or more multiply defined...

LNK1169: one or more multiply defined symbols found
Не могу понять, в чём тут ошибка?? Помогите пожалуйста)) #include &lt;iostream.h&gt; #include &lt;stdio.h&gt; #include &lt;math.h&gt; ...

Ошибка: one or more multiply defined symbols found
Пишу программу на C++, все нормально работала, компилировалась, потом добавил строчку коментариев, (не стояло...), перекомпилировал и...

16
2 / 2 / 2
Регистрация: 27.07.2012
Сообщений: 40
08.07.2013, 11:17  [ТС]
Help please!

Добавлено через 22 часа 21 минуту
Мне кажется проблема где-то со включениями... так как ошибку компилятор выдал после включения Very_Long_Number.cpp
Отзавитесь кто-нибудь...

Добавлено через 1 час 23 минуты
Что это вообще может значить...

Добавлено через 10 часов 12 минут
Мне надо отлаживать то, что я тут понаписал... застрял я на этой ошибке.
0
5499 / 4894 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
09.07.2013, 06:30
Это из-за:
C++
1
extern const int SZ = 1000;
в Very_Long_Number.h. Он подключается в двух файлах (main() и Very_Long_Number.cpp), отсюда множетсвенное определение.
1
2 / 2 / 2
Регистрация: 27.07.2012
Сообщений: 40
09.07.2013, 06:43  [ТС]
Спасибо... кажется разобрался.
0
5499 / 4894 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
09.07.2013, 06:53
Только как от этого избавиться (в студии) я не занаю, кроме как убрать из файлов все объявленя/определения SZ и прописать в Get_String_Getche.h:
C++
1
#define SZ 1000
Добавлено через 2 минуты
И ещё, рекомендуется using namespace std; помещать, в файле, после всех инклудов.
0
2 / 2 / 2
Регистрация: 27.07.2012
Сообщений: 40
09.07.2013, 07:06  [ТС]
Я перенёс
C++
1
#include "Very_Long_Number.h"
в "stdafx.h" и проблема решена.
0
09.07.2013, 07:33

Не по теме:

Цитата Сообщение от alsav22 Посмотреть сообщение
И ещё, рекомендуется using namespace std; помещать, в файле, после всех инклудов.
Рекомендуется не использовать данную запись в принципе.

0
09.07.2013, 07:44

Не по теме:

Цитата Сообщение от Tulosba Посмотреть сообщение
Рекомендуется не использовать данную запись в принципе.
В заголовочных файлах.
Герб Саттер. Решение сложных задач на C++. Поспорьте с профессионалом.

Миниатюры
fatal error LNK1169: one or more multiply defined symbols found  
0
09.07.2013, 07:54

Не по теме:

А вот еще...

Миниатюры
fatal error LNK1169: one or more multiply defined symbols found  
0
5499 / 4894 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
09.07.2013, 07:59
Цитата Сообщение от Асурус Посмотреть сообщение
Я перенёс
C++
1
#include "Very_Long_Number.h"
в "stdafx.h" и проблема решена.
Откуда что перенесли? Не пойму, как это может помочь, если stdafx.h тоже подключен к нескольким .cpp?
0
2 / 2 / 2
Регистрация: 27.07.2012
Сообщений: 40
09.07.2013, 08:04  [ТС]
C++
1
#pragma once
- кажется эта директива служит защитой от множественного включения
0
5499 / 4894 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
09.07.2013, 08:06
А что конкретно перенесли? Откуда?
0
2 / 2 / 2
Регистрация: 27.07.2012
Сообщений: 40
09.07.2013, 08:10  [ТС]
C++
1
#include "Very_Long_Number.h"
- удалил из файла с main(), и из "Very_Long_Number.cpp", и записал в "stdafx.h"
0
5499 / 4894 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
09.07.2013, 08:16
У меня ошибка остаётся. Не понятно, почему у вас нет. Весь проект может выложить?
0
2 / 2 / 2
Регистрация: 27.07.2012
Сообщений: 40
09.07.2013, 08:27  [ТС]
У меня там много и других ошибок... вот проект:
Get_String_Getche.h
C++
1
2
3
#include "stdafx.h"
 
void get_str(char* str);
stdafx.h
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
// stdafx.h : include file for standard system include files,
// or project specific include files that are used frequently, but
// are changed infrequently
//
 
#pragma once
 
#include "targetver.h"
 
#include <stdio.h>
#include <tchar.h>
 
#include <conio.h>
#include <string.h>
#include <iostream>
#include <stdlib.h>
#include <process.h>
using namespace std;
#include <Windows.h>
 
#include "Very_Long_Number.h"
// TODO: reference additional headers your program requires here
Very_Long_Number.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
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
#include "stdafx.h"
#include "Get_String_Getche.h"
 
extern const int SZ = 1000;
enum posneg{pos, neg};
 
class very_l_numb
{
private:
    char number[SZ];
    int numb_len;
    int signs_after_comma;
    posneg pn;
    very_l_numb mult_on_10(const very_l_numb);
    very_l_numb mult_on_digit(const int);
    void ld_to_str(const long double, char*);
public:
    very_l_numb()
    {
        number[0] = '\0';
        numb_len = 0;
        signs_after_comma = 0;
        pn = pos;
    }
    very_l_numb(const char str[])
    {
        int count_len = 0;
        int sign = 0;
        int slen = strlen(str);
        signs_after_comma = 0;
        for(int j = 0; j < slen; j++)
        {
            if(str[j] == ',')
            {
                if(signs_after_comma != 0)
                {
                    cout << "Ошибка, запятая уже была отмечена! Конструктор номер два. " << endl;
                    system("pause");
                    exit(0);
                }
                else
                    signs_after_comma = j;
            }
            else
            {
                
                if(str[j] >= '0' && str[j] <= '9')
                {
                    number[j] = str[j];
                    count_len++;
                }
                else if(str[j] == '+' || str[j] == '-')
                {
                    if(sign == 0)
                        sign = 1;
                    else
                    {
                        cout << "В числе присутствует больше одного знака! Конструктор номер два." << endl;
                        system("pause");
                        exit(0);
                    }
                }
                else
                {
                    cout << "В числе обнаружены инородные символы! Конструктор номер два." << endl;
                    system("pause");
                    exit(0);
                }
            }
        }
        number[numb_len] = '\0';
        strrev(number);
        numb_len = count_len;
        if(str[slen - 1] == '-')
            pn = neg;
        else
            pn = pos;
    }
    very_l_numb(const long double ld)
    {
        char str[SZ];
        ld_to_str(ld, str);
        very_l_numb temp(str);
        strcpy(number, temp.number);
        numb_len = temp.numb_len;
        signs_after_comma = temp.signs_after_comma;
        pn = temp.pn;
    }
    void show_numb();
    void get_numb();
    very_l_numb operator *(very_l_numb);
    very_l_numb operator +(very_l_numb);
    very_l_numb operator /(very_l_numb);
    very_l_numb operator -(very_l_numb);
};
Class_Very_Long_Number.cpp

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
// Class_Very_Long_Number.cpp : Defines the entry point for the console application.
//
 
#include "stdafx.h"
//#include "Very_Long_Number.h"
 
int _tmain(int argc, _TCHAR* argv[])
{
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
    setlocale(LC_ALL, "rus");
//  very_l_numb test((long double)10);
//  test.show_numb();
    system("pause");
    return 0;
}
Get_String_Getche.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
#include "stdafx.h"
#include "Get_String_Getche.h"
 
//extern const int SZ;
 
void get_str(char* str)
{
    int count = 0;
    char ch = 8;
    do
    {
        if(count == SZ)
        {
            cout << endl << "Строка может содержать только " << SZ - 1 << " символов." << endl
                << "Попробуйте ещё раз." << endl;
            count = 0;
        }
        *(str + count++) = getche();
        if(*(str + count - 1) == 8)
        {
            if(count != 1)
            {
                cout << " " << ch;;
                count -= 2;
            }
            else
                count--;
        }
    }while(*(str + (count - 1)) != '\r');
    str[count - 1] = '\x0';
    cout << endl;
}
Very_Long_Number.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
#include "stdafx.h"
//#include "Very_Long_Number.h"
 
void very_l_numb::ld_to_str(const long double ld, char* str)
{
    double d1;
    d1 = ld;
    int j = 0, i, a = 0;
    while(d1 >= 1)
    {
        d1 /= 10;
        j++;
    }
    while(d1 != 0)
    {
        d1 *= 10;
        i = d1;
        d1 -= i;
        if(a == j && d1 != 0)
            str[a++] = ',';
        else
            str[a++] = i + '0';
    }
    str[a] = '\0';
}
 
void very_l_numb::show_numb()
{
    if(signs_after_comma == numb_len)
        cout << '0';
    for(int j = numb_len; j > 0 + 1; j--)
    {
        if(j == signs_after_comma)
            cout << ',';
        cout << number[j - 1];
    }
}
0
5499 / 4894 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
09.07.2013, 08:42
Цитата Сообщение от Асурус Посмотреть сообщение
вот проект:
Я имел ввиду файлы студии.

Добавлено через 54 секунды
Цитата Сообщение от Асурус Посмотреть сообщение
У меня там много и других ошибок...
Может до этой просто не доходит?

Добавлено через 6 минут
У меня, как раз, других ошибок нет (предупреждения есть), только эта.
0
2 / 2 / 2
Регистрация: 27.07.2012
Сообщений: 40
09.07.2013, 08:58  [ТС]
Не, теперь всё в норме, я закоментировал вызовы функций с ошибками, всё выполняется.

Добавлено через 1 минуту
Что-то не хочет загружаться...

Добавлено через 7 минут
Не... извиняюсь... проэкт не загружается... не хочет с компа скачивать, что то за ошибку показывает...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
09.07.2013, 08:58
Помогаю со студенческими работами здесь

fatal error LNK1169: one or more multiply defined symbols found
Среда Visual Studio 2008, приложение CLR-&gt;Windows Form Application. Вот имеется форма: #pragma once #include &lt;windows.h&gt; ...

fatal error LNK1169: one or more multiply defined symbols found
В общем, тема в следующем. Пишу прогу а-ля картотека (2 курс, классический курсовой по C++). Столкнулся вот со следующей ошибкой: error...

Ошибка "LNK1169: one or more multiply defined symbols found" при добавлении файла в проект
Здравствуйте, у меня такая проблема в Microsoft Visual Studio 2013/2012: создаю проект, создаю C++ файл (ctrl+shift+a, кстати, подскажите,...

Fatal error LNK1169 (VS2017)
Доброго времени суток, уважаемое сообщество. Бороздил просторы интернета в поиске решения своей проблемы, и в отчаянии пишу сюда (тут тоже...

Fatal error LNK1169: обнаружен многократно определенный символ - один или более
При компиляции возникает ошибка: 1&gt;Исходный код.obj : error LNK2005: &quot;public: __thiscall Dates::~Dates(void)&quot; (??1Dates@@QAE@XZ)...


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

Или воспользуйтесь поиском по форуму:
17
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru