Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Общие вопросы > Turbo C++


Автор: Partizan 27.3.2007, 00:07
создан проект...
в проекте 3 файла...main.c, myfunc.h, myfunc.c
есть файл main.c:
Код


#include<stdio.h>
#include "MyFunc.h"

int main(){
    
    Func();
  
 return 0;

}


файл myfunc.c:
Код


#include "MyFunc.h"

void Func(void){

   printf("%s","Hello, World!");

}


ну и в MyFunc.h лежит прототип: void Func(void);


при попытке запустить main.c линкер ругается и сообщает об ошибке: function _Func declared in MYFUNC.C is duplicated in module MYFUNC.C

а иногда...после некоторых манипуляций почемуто вообще говорит что undeclared symbol _Func in MAIN.C

Автор: archimed7592 27.3.2007, 00:14
на выбор:
либо MyFunc (void) в myfunc.c
либо Func () в main.c...

Добавлено через 1 минуту и 38 секунд
Цитата(Partizan @  27.3.2007,  00:07 Найти цитируемый пост)
unction _Func declared in MYFUNC.C is duplicated in module MYFUNC.C
а ещё похоже, на то, что у тебя в .h далеко не прототип...показывай .h

Автор: Partizan 27.3.2007, 00:19
в хедере только одна строка:

void Func(void);

для меня самого такая ошибка с повторением является загадкой...

Добавлено через 13 минут и 10 секунд
ну что нет вариантов???

Автор: Kuvaldis 27.3.2007, 01:01
Partizan, 
Надо создать проект http://forum.vingrad.ru/index.php?showtopic=137309&hl= я отвечал уже

Автор: Partizan 27.3.2007, 01:02
алелуйа)
решил проблему своими руками)
в опциях проекта для хедера надо было выставить галку Exclude from linking...

даже стыдно за такое )  smile

Добавлено @ 01:03
Kuvaldis, проект был создан) проблема была вышеуказанная)

з.ы. прочёл) говорилось о том же самом тем не менее ) спасиба)

Автор: Goryachev 27.3.2007, 16:24
Цитата(Partizan @  27.3.2007,  01:02 Найти цитируемый пост)
алелуйа)
решил проблему своими руками)
в опциях проекта для хедера надо было выставить галку Exclude from linking...


не обязательно.
скорее всего ты не сделал самое стандартное, что надо делать в хедере с:

Код

#ifndef _MYFUNC_H
#define _MYFUNC_H
...
...
#endif


Автор: Partizan 27.3.2007, 16:28
Goryachev, да этого я не сделал, ибо был уверен в том что хедер будет включён в проект только один раз... и проблема была совсем не в этом,повторяю вам ещё раз)...

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)