Es scheint, als ob in Ubuntu 18.04 das standardmäßig gelieferte g ++ (Version 7.3.0) standardmäßig im C ++ 11-kompatiblen Modus ausgeführt wird. Ich erhalte einige Fehler in meinen alten Codes, die nicht C ++ 11-kompatibel sind. Ich habe g ++ - 6 (Version 6.4.0) installiert und die Programme werden gut kompiliert. Ist es möglich, den C ++ 11-Modus in g ++ - 7 zu deaktivieren?
11
std::auto_ptr
, oder sie habenauto
in seiner ursprünglichen Gestalt verwendet, oder sie haben jetzt illegale Verengungskonvertierungen, oder sie haben verwendetexport
, oder, oder, oderAntworten:
Versuchen Sie hinzuzufügen
-std=gnu++98
, es war wahrscheinlich die Standardeinstellung für gcc 6.4.0.Beispiel:
quelle
-D_GLIBCXX_USE_CXX11_ABI=0
auch-std=gnu++03
für den letzten Standard vor C ++ 11. Erwähnenswert ist auch, dass-std=c++03
einige GNU-Erweiterungen deaktiviert werden, die mit striktem ISO C ++ nicht kompatibel sind.__cplusplus
: Wie wird die vom Compiler verwendete Version des C ++ - Standards ermittelt?Von der
man g++
können Sie zwischen verschiedenen Dialekten wählen:quelle