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

Ошибка компоновки "LNK1169: обнаружен многократно определенный символ" - C++

Восстановить пароль Регистрация
 
Антон219
0 / 0 / 0
Регистрация: 09.06.2013
Сообщений: 68
18.06.2014, 01:14     Ошибка компоновки "LNK1169: обнаружен многократно определенный символ" #1
Привет, народ! Уже очень долго не могу разобраться со следующей проблемой, есть 4 маленьких файла:
-------------------------------
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
//файл ClassTest.h
#pragma once
#include "main.h"
class classTest
{
public:
    classTest(void);
    ~classTest(void);
};
-------------------------------
//файл ClassTest.cpp
#include "classTest.h"
#include "main.h"
 
classTest::classTest(void)
{
}
 
classTest::~classTest(void)
{
}
-------------------------------
//файл main.h
#ifndef MAIN_H
#define MAIN_H
int i;
#endif //MAIN_H
-------------------------------
//файл main.cpp
#include "classTest.h"
#include "main.h"
 
int main()
{
    return 0;
}
-------------------------------
выдает ошибку:
1>------ Построение начато: проект: Test, Конфигурация: Debug Win32 ------
1> main.cpp
1> classTest.cpp
1> Создание кода...
1>main.obj : error LNK2005: "int i" (?i@@3HA) уже определен в classTest.obj
1>c:\users\anton\documents\visual studio 2010\Projects\Test\Debug\Test.exe : fatal error LNK1169: обнаружен многократно определенный символ - один или более
========== Построение: успешно: 0, с ошибками: 1, без изменений: 0, пропущено: 0 ==========
В чем тут дело? В компоновке? Что делать, если нужно файл многократно включать в другие файлы? Очень нужна помощь! Пожалуйста помогите!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.06.2014, 01:14     Ошибка компоновки "LNK1169: обнаружен многократно определенный символ"
Посмотрите здесь:

Подскажите почему может появляться ошибка: "неразрешенный внешний символ "_SDL_..."" C++
fatal error LNK1169: обнаружен многократно определенный символ - один или более C++
fatal error LNK1169: обнаружен многократно определенный символ - один или более C++
C++ Многократно определенный символ. Где?
C++ Ошибка компоновки fatal error LNK1104: не удается открыть файл "kernel32.lib"
Fatal error LNK1169: обнаружен многократно определенный символ - один или более C++
C++ LNK1169: обнаружен многократно определенный символ - один или более
C++ Обнаружен многократно определенный символ - один или более

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
18.06.2014, 01:37     Ошибка компоновки "LNK1169: обнаружен многократно определенный символ" #2
Цитата Сообщение от Антон219 Посмотреть сообщение
В чем тут дело?
Не нужно в .h файлах делать определения:
C++
1
int i; // объявление с определением, выделяется память под i
Это нужно делать в .cpp файлах, а в .h делать объявления:
C++
1
extern int i; // только объявление, память под переменную i не выделяется
Добавлено через 3 минуты
Определение переменной в программе (выделение памяти) должно быть только одно, объявлений может быть сколько угодно.
Антон219
0 / 0 / 0
Регистрация: 09.06.2013
Сообщений: 68
18.06.2014, 17:50  [ТС]     Ошибка компоновки "LNK1169: обнаружен многократно определенный символ" #3
Спасибо, alsav22! Все получилось!))
Yandex
Объявления
18.06.2014, 17:50     Ошибка компоновки "LNK1169: обнаружен многократно определенный символ"
Ответ Создать тему
Опции темы

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