Wpis z mikrobloga

Mam problem z kompilatorem, piszę sobie programik w Visual Studio 2012 w C++ i chcę użyć std::map i std::vector. Oczywiście zaincludowane są i , jednak jedynie kiedy zadeklaruję globalnie

std::map> function;
to pojawia się przerażający błąd nie wiem z czym związany i nie wiem jak się go pozbyć: http://prntscr.com/3zc3bt

Includy: http://prntscr.com/3zcqoa

Czy ktoś potrafi coś podpowiedzieć?

#programowanie #cpp
  • 13
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@blisher: Nigdzie więcej nie ma żadnego nawiązania do tej kostrukcji, a pojawianie się błędu zależy tylko i wyłącznie od tej linii. Choć ta linia może budzić coś innego, ale jak ją zakomentuję to compilation success.
  • Odpowiedz
@kuhar: proszę:

1>main.obj : error LNK2019: unresolved external symbol __imp___CrtDbgReportW referenced in function "public: bool __thiscall std::_Tree_const_iterator > > >::operator==(class std::_Tree_const_iterator > > > const &)const " (??8?$_Tree_const_iterator@V?$_Tree_val@U?$_Tree_simple_types@U?$pair@$$CBNH@std@@@std@@@std@@@std@@QBE_NABV01@@Z)
Zauważyłem że jak wytnę

std::vector
to błąd ciągle występuje, czyli to nie tego wina.
  • Odpowiedz
@baftek: Prawdopodobnie bawiłeś się z ustawieniami projektu i jakimś cudem w jednej konfiguracji znalazły się makra od debugowania oraz informacje o dołączeniu runtime C++ w wersji release.
  • Odpowiedz
@kuhar: Hmmm, zmieniłem runtime library w project properties na multi-threaded debug i się skompilowało. Czy są jakieś negatywne następstwa tej zmiany?
  • Odpowiedz
@baftek: Nie no, masz po prostu konfigurację debug i masz konfigurację release. Ustaw tak, żeby w debug dodawały się te stałe preprocesora od debugowania i ustaw runtime na multi-threded debug, a w release usuń stałe, a runtime ustaw na multi-threaded.
  • Odpowiedz