multiple definition of, previous definition was here

0

Hej, Mam taki plik nagłówkowy. Pomijam już fakt czy to jest dobre rozwiązanie czy nie.
Dołączam ten plik w dwóch innych plikach(.cpp) i wywołuję na tym obiekcie metody.

#ifndef SHARED_OBJECTS_H_
#define SHARED_OBJECTS_H_

#include "TestFrame.h"

TestFrame testFrame;

#endif // SHARED_OBJECTS_H_

W trakcie budowania konsolidator krzyczy:

Confidential multiple definition of `testFrame'
first defined here

3

Nie możesz definiować zmiennej w nagłówku, bo potem pojawia się ona w każdym obiekcie kompilacji. Zadeklaruj jako extern, a definicję przenieś do jednego z plików .cpp.

2

zmienna globalna w nagłówku.

Najlepiej nie używaj zmiennych globalnych.

A jak musisz, to w nagłówku umieść deklarację:

extern TestFrame testFrame;

A jednym pliku cpp definicję.

0

Wiem o tym, myślę właśnie aby dodwać odpowiednie zależności miedzy klasami.

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