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

Ошибки линковки LNK2005, LNK1169 - C++

Восстановить пароль Регистрация
 
 
Рейтинг: Рейтинг темы: голосов - 22, средняя оценка - 5.00
Whiteha
Программист
33 / 33 / 4
Регистрация: 08.07.2011
Сообщений: 190
Записей в блоге: 1
04.04.2012, 18:19     Ошибки линковки LNK2005, LNK1169 #1
Как-то пробовал сделать программу из нескольких модулей, но наткнувшись на какие-то непонятные ошибки забросил это дело...
Решив же намедни окончательно разобраться с этим вопросом, я опять столкнулся с непонятными ошибками линковки, поиск чётких ответов не дал.
Что же тут не так?

Файл Example.cpp:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#ifndef EXAMPLE_CPP
#define EXAMPLE_CPP
 
#include <string>
#include <iostream>
 
int out_string1(std::string str)
{
    std::cout << str << 1 << std::endl;
    return true; 
}
 
using namespace std;
void out_string2(string str)
{
    cout << str << 2 << endl;
}
 
#endif
Главный файл с мейном:

C++
1
2
3
4
5
6
7
8
9
#include "Example.cpp"
 
 
void main()
{
    out_string1("ololo");
    out_string2("test");
    system("pause");
}
1>ManifestResourceCompile:
1> All outputs are up-to-date.
1>Test.obj : error LNK2005: "int __cdecl out_string1(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >)" (?out_string1@@YAHV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z) уже определен в Example.obj
1>Test.obj : error LNK2005: "void __cdecl out_string2(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >)" (?out_string2@@YAXV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z) уже определен в Example.obj
1>C:\Users\User_name\Desktop\Test\Debug\Test.exe : fatal error LNK1169: обнаружен многократно определенный символ - один или более
Среда VS 10.
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.04.2012, 18:19     Ошибки линковки LNK2005, LNK1169
Посмотрите здесь:

C++ LNK1169: one or more multiply defined symbols found
C++ ошибки линковки с++(...
C++ LNK2005
Ошибки на стадии линковки C++
[MPI] Ошибки линковки C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.04.2012, 08:26     Ошибки линковки LNK2005, LNK1169
Еще ссылки по теме:

C++ error LNK2005
Ошибка LNK2005 C++
Ошибки линковки при использовании шаблонного класса C++

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

Или воспользуйтесь поиском по форуму:
fasked
Эксперт C++
 Аватар для fasked
4925 / 2505 / 180
Регистрация: 07.10.2009
Сообщений: 4,306
Записей в блоге: 1
06.04.2012, 08:26     Ошибки линковки LNK2005, LNK1169 #21
Цитата Сообщение от Kuzia domovenok Посмотреть сообщение
Все каноны "Великих Сей Плюсплюс" соблюдены?
Кроме того, что этого вообще не скомпилируется?

Добавлено через 2 минуты
Whiteha, шаблонные классы нельзя разбивать на разные файлы. Вся реализация должна быть в заголовочном файле. Так как шаблон инстанцируется еще на этапе компиляции, то реализация шаблона должна быть доступна до линковки. В общем нельзя шаблоны разбивать.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Yandex
Объявления
06.04.2012, 08:26     Ошибки линковки LNK2005, LNK1169
Ответ Создать тему
Опции темы

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