Skocz do zawartości

Łączenie modułów ;///


LyanVu

Rekomendowane odpowiedzi

Witam, mam taki o to problem, którego rozwiązania nie mogę znaleźć w guglach. A więc, na jakiej zasadzie łączę moduły? Takie coś nie działa:

Game.cpp:

int Powitanie()
{
cout << "elo";
return 0;
}

 

main.cpp:

#include "Game.cpp"

using namespace std;

int main()
{
Powitanie();
_getch();
return 0;
}

 

Wystakuje:

1>main.obj : error LNK2005: "int __cdecl Powitanie(void)" (?Powitanie@@YAHXZ) already defined in Game.obj

1>C:\exe : fatal error LNK1169: one or more multiply defined symbols found

Odnośnik do komentarza
Udostępnij na innych stronach

Aż nie wiem od czego tu zacząć...

Przede wszystkim, załącz ważne biblioteki jak iostream.

Poza tym to jest kompletnie źle wykonany kod. Dołączasz nagłówek, nie kod źródłowy, czyli zrób plik Game.hpp i jego załączasz.

#ifndef _GAME_HPP
#define _GAME_HPP

int Powitanie();

#endif

 

 

To jest warunek istnienia stałej _GAME_HPP, jeśli nie istnieje wykonuje kod wewnątrz instrukcji warunkowej. Tam definiowana jest stała, więc nie ma szans na podwójne załączenie pliku nagłówkowego, później dodajesz wszystkie deklaracje funkcji, a ich ciała zostawiaj w Game.cpp. I tego pliku nigdzie nie dołączasz, bo kompilator robi to za Ciebie. :)

Odnośnik do komentarza
Udostępnij na innych stronach

Co to za różnica? Tylko wprowadza nas to w błąd, a czytelniej jest jak jest wszystko co potrzebne. No dobra, więc problem leży w tym, że źle dołączyłeś plik, nic więcej. Zrób tak jak mówiłem i będzie cacy. :)

 

EDIT:

Ano, nie rób funkcji zwracających int jeśli to niepotrzebne. Nawet dla samej czytelności zmień to na void i wywal return (bo po co to?). :)

Odnośnik do komentarza
Udostępnij na innych stronach

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się
  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...