c++ c++11 - Compilando C ++ 11 con g ++




3 Answers

Los indicadores (o las opciones del compilador) no son más que argumentos ordinarios de línea de comando que se pasan al ejecutable del compilador.

Suponiendo que está invocando g ++ desde la línea de comandos (terminal):

$ g++ -std=c++11 your_file.cpp -o your_program

o

$ g++ -std=c++0x your_file.cpp -o your_program

Si lo anterior no funciona.

compiler ubuntu

Estoy intentando actualizar mi compilador de C ++ a C ++ 11. He buscado un poco y he llegado a la conclusión de que tengo que usar el indicador -std=c++0x o -std=gnu++0x , pero no sé muchas cosas acerca de los indicadores. ¿Alguien puede ayudarme? (Estoy usando Ubuntu 12.04.)

Aquí está el error que recibo del compilador cuando intento usar una biblioteca que está incluida en C ++ 11 (es decir, matriz):

#include <array>
#include <iostream>

int main()
{
    std::array<int, 3> arr = {2, 3, 5};
    ...
}

Este archivo requiere soporte de compilador y biblioteca para el próximo estándar ISO C ++, C ++ 0x. Este soporte es actualmente experimental y debe habilitarse con las opciones del compilador -std = c ++ 0x o -std = gnu ++ 0x.




Tu ubuntu definitivamente tiene una versión suficientemente reciente de g ++. La bandera a usar es -std=c++0x .




Puede consultar el siguiente link para ver qué funciones se admiten en una versión particular del compilador. Tiene una lista exhaustiva de soporte de características en el compilador. Looks GCC sigue de cerca el estándar e implementa antes que cualquier otro compilador.

Respecto a tu pregunta puedes compilar usando

  1. g++ -std=c++11 para C ++ 11
  2. g++ -std=c++14 para C ++ 14
  3. g++ -std=c++17 para C ++ 17
  4. g++ -std=c++2a para C ++ 20, aunque todavía no se admiten todas las funciones de C ++ 20, consulte este link para obtener la lista de funciones de GCC.

La lista cambia bastante rápido, vigile la lista, si está esperando que se admita una función en particular.




Related

c++ c++11 g++ flags