Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 21.05.2010, 21:10   #1
Syuf
Форумчанин
 
Аватар для Syuf
 
Регистрация: 02.02.2010
Сообщений: 599
Сообщение Проблемы с многофайловыми проектами

Я уже давно проходил деление решения на файлы, разобрался с включением заголовочных файлов(.h), но так и не понял как включать файлы .cpp и сейчас возникли проблемы.
Если предположить, что у нас есть функция sum, определенная в файле sumf.cpp и функция main, определенная в файле main.cpp, то вот это:
Код:
// main.cpp

#include "sumf.cpp"
int main()
{
      sum(2,2);
      return 0;
}

// sumf.cpp

int sum(int a, int b) { return a+b; }
не работает. Выдает такие ошибки:
Код:
Error 1 error LNK2005: "int __cdecl sum(int,int)" (?sum@@YAHHH@Z)
already defined in main.obj	sumf.obj

Error 2 fatal error LNK1169: one or more multiply defined symbols found
C:\Visual C++\Example15\Debug\Example15.exe 1
Что тут лишнее или чего не хватает?
"Лишь то читается легко, что написано с трудом; что в час написано, то в час и позабыто."
Syuf вне форума
Старый 21.05.2010, 21:34   #2
netrino
Участник клуба
 
Аватар для netrino
 
Регистрация: 15.07.2008
Сообщений: 1,933
По умолчанию

Лишнее тут
Код:
#include <sumf.cpp>
.cpp файл нужно не включать в другие файлы директивой include, а подавать на вход компилятору.
С помощью include включаются только заголовки (.h), как раз, дабы избежать вот таких вот ошибок "множественного определения функции".
Создайте файл sumf.h, состоящий из
Код:
int sum(int, int);
и подключайте его в main.cpp и в sumf.cpp
netrino вне форума
Старый 21.05.2010, 21:49   #3
Syuf
Форумчанин
 
Аватар для Syuf
 
Регистрация: 02.02.2010
Сообщений: 599
По умолчанию

Спасибо, теперь все работает.
"Лишь то читается легко, что написано с трудом; что в час написано, то в час и позабыто."
Syuf вне форума
Закрытая тема


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
проблемы с if Vergil Общие вопросы C/C++ 8 21.04.2010 21:43
И такое бывает с программерскими проектами Alar Свободное общение 18 20.10.2009 15:54
Delphi. Проблемы Котакот Помощь студентам 1 20.04.2009 01:27
ПРоблемы с графикой DJEDY Общие вопросы C/C++ 1 19.04.2009 23:46
проблемы с IE xakzona Помощь студентам 1 16.12.2008 21:53