Static std::mutex wewnątrz struktury - LNK2001: unresolved external symbol

Odpowiedz Nowy wątek
2015-02-08 18:25
0

Witam.
Dlaczego przy próbie użycia mutex'u zadeklarowanego jako statyczna zmienna w strukturze otrzymuję poniższy błąd?
Błąd 2 error LNK2001: unresolved external symbol "public: static class std::mutex Head_Record::Mutex" ([email protected][email protected]@[email protected]@@A);

struct Head_Record{

    static std::mutex Mutex;

    std::string Name;

    std::array<std::vector<Record>, 2> Records;

    Head_Record(std::array<std::vector<Record>, 2> &Records, std::string Name){

        this->Records = Records;
        this->Name = Name;

    }

};
    Head_Record::Mutex.lock();

    ...

    Head_Record::Mutex.unlock();
edytowany 1x, ostatnio: Kamil9132, 2015-02-08 18:25

Pozostało 580 znaków

2015-02-08 18:50

bo nie masz definicji tego mutexa, dodaj w pliku cpp

std::mutex Head_Record::Mutex;

jak wiesz static zmienne nie należą do klasy (mają tylko jej namespace, czyli nie są inicjalizowane wraz z inicjalizacją klasy), musisz gdzieś je zainicjalizować przed użyciem

edytowany 1x, ostatnio: gośćabc, 2015-02-08 18:51

Pozostało 580 znaków

2015-02-08 18:56
0

Dziękuję za pomoc.

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