Como definir o C ++ 11 como meu compilador padrão?

2

Estou usando o Ubuntu.

Ao programar em C ++, a palavra-chave nullptr não é reconhecida pelo compilador.

Ele diz que não está declarado neste escopo .

Não funciona, mesmo que eu defina o sinalizador -std=c++11 .

    
por user3171335 02.11.2014 / 23:47

1 resposta

6

O C ++ 11 não é um compilador, mas um padrão ISO implementado por um número de compiladores populares. O compilador C ++ padrão no Ubuntu é g++ da coleção de compiladores GNU. Como você mencionou na sua pergunta, o sinal -std=c++11 habilita os recursos do C ++ 11 em g++ , bem como o Clang, outro compilador C ++ disponível no Ubuntu.

A mensagem de erro que você vê é mostrada quando o suporte ao C ++ 11 não está habilitado ou não é suportado pelo seu compilador. O GCC 4.6 foi a primeira versão a suportar nullptr , portanto, se você estiver usando uma versão anterior, não poderá usar nullptr . Use g++ --version para obter a versão instalada.

Supondo que você esteja usando pelo menos o GCC 4.6, você precisará determinar por que seu sistema de compilação não está passando os sinalizadores corretos para o compilador. No CMake, por exemplo, você precisará usar:

set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
    
por 03.11.2014 / 00:05

Tags