multiple definition of, previous definition was here

Odpowiedz Nowy wątek
2019-03-28 12:08
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

Pozostało 580 znaków

2019-03-28 12:09
kq

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.


Pozostało 580 znaków

2019-03-28 12:10
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ę.


Jeśli chcesz pomocy, NIE pisz na priva, ale zadaj dobre pytanie na forum.

Pozostało 580 znaków

2019-03-28 12:24
0

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

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

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