Estou tentando compilar usando g++
e os sinalizadores -std=c++11
ou c++0x
.
No entanto, recebo este erro
cc1plus: error: unrecognized command line option "-std=c++11"
g ++ --version
g++ (GCC) 4.1.2 20080704 (Red Hat 4.1.2-54)
Copyright (C) 2006 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
-std=c++0x
com g ++g++ --version
. Em seguida, coloque o número da versão aqui.g++-
na janela do console.Respostas:
Vendo de sua versão G ++, você precisa atualizá-lo mal. C ++ 11 só está disponível a partir do G ++ 4.3. A versão mais recente é 4.7.
Em versões pré-G ++ 4.7, você terá que usar
-std=c++0x
, para versões mais recentes você pode usar-std=c++11
.fonte
Citando do site do gcc :
Portanto, provavelmente você usa uma versão do g ++ que não é compatível
-std=c++11
. Em-std=c++0x
vez disso, tente .A disponibilidade de recursos do C ++ 11 é para versões> = 4.3 apenas.
fonte
você deveria tentar isso
fonte
Também recebi o mesmo erro, ao compilar com a sinalização -D corrigiu-o, tente isto:
g ++ -Dstd = c ++ 11
fonte
std::vector<int> v = {1, 2, 3};
to test e ele estava lançando todos os tipos de erros sobre ele (erros diferentes dos sem a bandeira, curiosamente).-D
argumento da linha de comando é equivalente a inserir um#define
em seu código-fonte. Portanto, este comando é como ter#define std c++11
. Você pode imaginar comostd::string
será redefinido parac++11::string
? Não é muito útil.