Tworzę kod C++ w Eclipse CDT z g++ i otrzymuję następujący błąd konsolidatora:
Undefined symbols for architecture x86_64:
"std::__throw_bad_function_call()", referenced from:
std::function<void (graphics::RenderingContext*)>::operator()(graphics::RenderingContext*) const in GameWindow.o
Mam std::function
członków w klasie o nazwie GameWindow.
Czy jest coś, do czego muszę się połączyć, aby uzyskać kod za pomocą std::function
, aby połączyć poprawnie?
1 odpowiedź
Okazuje się, że moja ścieżka lib nie została poprawnie ustawiona dla g++.
Dla potomnych: do kompilacji używam gcc 4.7, ponieważ potrzebuję funkcji C++11. XCode (na OS X Mountain Lion), jest dostarczany z gcc 4.2, więc zainstalowałem gcc 4.7 przez Homebrew.
Aby Eclipse skompilowało się z gcc 4.7, musiałem zmienić ścieżkę do kompilatora i linkera w ustawieniach projektu, aby odpowiadała nowo zainstalowanej przez Homebrew wersji. Jednak nadal miałem starą ścieżkę biblioteki do gcc 4.2 stdlibc++ w ustawieniach mojego projektu.
Podobne pytania
Nowe pytania
c++
C ++ to język programowania ogólnego przeznaczenia. Pierwotnie został zaprojektowany jako rozszerzenie C i ma podobną składnię, ale teraz jest to zupełnie inny język. Użyj tego tagu w przypadku pytań dotyczących kodu (który ma zostać) skompilowany za pomocą kompilatora C ++. Użyj znacznika specyficznego dla wersji w przypadku pytań związanych z określoną wersją standardu [C ++ 11], [C ++ 14], [C ++ 17], [C ++ 20] lub [C ++ 23] itp. .