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

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" (?Mutex@Head_Record@@2Vmutex@std@@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();
2

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

0

Dziękuję za pomoc.

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