Pracuję w projekcie zależnym od Boost (http://kratos-wiki.cimne.upc.edu/index.php/Main_Page), ten projekt obsługuje obecnie tylko C++ 03. Z ostatniej aktualizacji gcC++ (v.5) C++ 11 stał się domyślnym std technicznie I rozwiązać problem zmieniającą CXX_FLAGS dodając:Jak skompilować wzmocnienie ze starszym std C++? (C++ 03 w szczególności)
-std = C++ 03
Problem pochodzi z biblioteki Boost, której nie jestem w stanie skompilować ze stdem C++ 03 (myślę, że nie wiem, jak sprawdzić, z którym stadem się skompilowałem). Próbowałem stosując następujące polecenie, aby skompilować Boost:
./b2 zainstalować etap --with-python --with-serializacji CXXFLAGS = "- std = C++ 03"
mam Próbowałem też zmodyfikować plik Jamroot, dodając następujące linie:
<toolset>gcc:<cxxflags>-std=gnu++03 <toolset>clang:<cxxflags>-std=c++03
Ale problem nadal występuje, kiedy mogę skompilować cały projekt mogę otrzymać następujący rodzaj ostrzeżenia (Seve Czasy RAL):
/usr/local/include/boost/type_traits/detail/template_arity_spec.hpp:13:84 Uwaga: #pragma komunikat: UWAGA: Korzystanie z tego nagłówka (template_arity_spec.hpp) jest przestarzała wiadomość # pragma („UWAGA: Korzystanie z tego nagłówka (template_arity_spec.hpp) jest przestarzała”)
Dlatego podejrzewam, że moje zmiany nie odniosły skutek.
Dziękuję bardzo za pomoc
Wydaje się, że jest to znany problem z funkcją Boost, google it. –
Już to zrobiłem, prawdopodobnie nie zrobiłem tego we właściwy sposób. – user5288
Zobacz http://permalink.gmane.org/gmane.comp.lib.boost.devel/264164. Ponieważ są to tylko ostrzeżenia, prawdopodobnie możesz kontynuować pracę i czekać na naprawę. Alternatywnie możesz przetestować starszą wersję doładowania, jeśli chcesz. – user2672165