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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 28.06.2008, 08:57   #1
Prestigio
Пользователь
 
Регистрация: 21.01.2008
Сообщений: 10
По умолчанию модульное программирование

имеется 2 файла: main.cpp; 2.cpp.
нужно вызвать функцию, находящуюся в 2.cpp при выполнении мэйн кода.
Код:
//мэйн
#include "2.cpp"
int main()
{
qwerty();
return 0;      
}
Код:
//2.срр
extern int qwerty() { return 5; }
компилятор gcc.
отчёт:
Цитата:
Компилятор: Default compiler
Building Makefile: "C:\c++\asdf\Makefile.win"
Выполнение make...
make.exe -f "C:\c++\asdf\Makefile.win" all
g++.exe -c main.cpp -o main.o -I"C:/Dev-Cpp/lib/gcc/mingw32/3.4.2/include" -I"C:/Dev-Cpp/include/c++/3.4.2/backward" -I"C:/Dev-Cpp/include/c++/3.4.2/mingw32" -I"C:/Dev-Cpp/include/c++/3.4.2" -I"C:/Dev-Cpp/include"

g++.exe main.o 2.o -o "1.exe" -L"C:/Dev-Cpp/lib"

2.o(.text+0x0):2.cpp: multiple definition of `qwerty()'
main.o(.text+0x0):main.cpp: first defined here
collect2: ld returned 1 exit status

make.exe: *** [1.exe] Error 1

Выполнение завершено
насколько понял я, компилятор щитает, что функция объявлена больше 1 раза. непонятно почему. долблюсь с ним уже третий день. текстов, в которых явно показывается данный момент найти не удалось; везде пишут, что да, вот есть такое, что нужно знать, "но мы на этом останавливатся не будем" потому, что "мы ставим другие задачи"
Prestigio вне форума Ответить с цитированием
Старый 28.06.2008, 09:04   #2
B_N
Новичок
Джуниор
 
Регистрация: 18.01.2008
Сообщений: 1,720
По умолчанию

Значит, такие книжки Вам попались.. Вообще, включать по #include cpp-файлы - очень некрасиво и чревато массой проблем, с одной из которых Вы и столкнулись. В качестве вариантов - 1. Включить прототип функции в .h-файле и инклудать именно его. 2. Просто описать её прототип в том файле, где она вызывается, без extern.
B_N вне форума Ответить с цитированием
Старый 28.06.2008, 09:12   #3
Prestigio
Пользователь
 
Регистрация: 21.01.2008
Сообщений: 10
По умолчанию

благодарю . сделал всё первым способом. всё работает.
Prestigio вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
программирование фамил Свободное общение 10 23.09.2009 14:28
Программирование под .NET RoamingFire Свободное общение 1 04.03.2008 08:35
ПРограммирование Андрюха из ПХТТ Фриланс 3 04.02.2008 21:25
Модульное программирование на Паскале Alta Помощь студентам 1 29.01.2008 08:23
модульное программирование, С++ Stiker Помощь студентам 1 09.12.2007 21:38