Projekty wieloplikowe c++ - multiple definition of

2013-12-16 15:13
0

Chce sobie zrobić programik podzielony na pliki i z użycie przestrzeni nazw
i mam tak:
3 plik
jeden z mainem .cpp, jeden z funkcjami .cpp, i jeden z prototypami funkcji .h

#include <iostream>
#include "prototypy_funkcji.h"
#include "funkcje.cpp"

int main(int argc, char** argv)
{    
    menu();
}

//=========================

#include <iostream>

using std::cout;
using std::endl;

void menu(void)
{
    cout << "1.jakas tam opcja" << endl;
}

//===========================
#ifndef PROTOTYPY
#define PROTOTYPY

void menu(void);
#endif

i mam taki komunikat dlaczego??
funkcje.cpp:(.text+0x0): multiple definition of `menu()'

korzystam z deva i daje new project.
ale jak nie robie new project to wszystko jest ok

edytowany 1x, ostatnio: Kosimazaki123, 2013-12-16 15:17

Pozostało 580 znaków

2013-12-16 15:17
kq
0

#include "funkcje.cpp" A po co to?


Pozostało 580 znaków

2013-12-16 15:18
1

funkcje.cpp - dołącz do projektu, nie tak jak to uczyniłeś.


Wykonuję programy na zamówienie, pisać na Priv.
Asm/C/C++/Pascal/Delphi/Java/C#/PHP/JS oraz inne języki.

Pozostało 580 znaków

2013-12-16 15:20
1

Nie includuje się plików cpp. Kompiluje się je a potem linkuje wszystko w jeden plik wynikowy. Jeśli używasz jakiegoś IDE to wystarczy że stworzysz projekt a IDE samo ogarnie kompilacje i linkowanie. Jesli komiplujesz z konsoli to wystarczy
gcc plik.cpp plik2.cpp .... -o plik_wynikowy

Tak czy siak wywal includowanie plików źródłowych.


Masz problem? Pisz na forum, nie do mnie. Nie masz problemów? Kup komputer...

Pozostało 580 znaków

2013-12-16 15:23
0

czyli includuje tylko pliki nagłówkowe??

Pozostało 580 znaków

2013-12-16 15:26
1

A jakiego słowa w tym:

Shalom napisał(a):

Nie includuje się plików cpp.
nie zrozumiałeś?


Wykonuję programy na zamówienie, pisać na Priv.
Asm/C/C++/Pascal/Delphi/Java/C#/PHP/JS oraz inne języki.

Pozostało 580 znaków

2013-12-16 15:27
0

no to skąd kompilator wie gdzie szukać definicji funkcji??

Kompilator nie wie i nie musi tego wiedzieć. <del>Linker wie.</del> Linker musi. - kq 2013-12-16 15:29
Linkier też nie wie, przeszukuje wszystkie pliki które podałeś. - _13th_Dragon 2013-12-16 15:35

Pozostało 580 znaków

2013-12-16 16:07
1

@Kosimazaki123 jak zlinkujesz wszystkie definicje i dasz kompilatorowi informacje o nazwie funkcji to on sobie odpowiednią znajdzie...


Masz problem? Pisz na forum, nie do mnie. Nie masz problemów? Kup komputer...
edytowany 1x, ostatnio: Shalom, 2013-12-16 16:07

Pozostało 580 znaków

Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0