Utilizo gcc 4.8.1 de http://hpc.sourceforge.net en Mac OSX Mountain Lion. Estoy intentando compilar un programa C ++ que usa la to_string
función en <string>
. Necesito usar la bandera -std=c++11
cada vez:
g++ -std=c++11 -o testcode1 code1.cpp
¿Hay alguna forma de incluir esta bandera de forma predeterminada?
CXXFLAGS
.Respuestas:
H2CO3 tiene razón, puede usar un archivo MAKE con el conjunto CXXFLAGS con -std = c ++ 11 Un archivo MAKE es un archivo de texto simple con instrucciones sobre cómo compilar su programa. Cree un nuevo archivo llamado Makefile (con una M mayúscula). Para compilar automáticamente su código, simplemente escriba el comando make en una terminal. Puede que tenga que instalar make.
Aquí hay uno simple:
Asume que todos los archivos .cpp están en el mismo directorio que el archivo MAKE. Pero puede modificar fácilmente su archivo MAKE para admitir un src, incluir y construir directorios.
Editar : modifiqué el compilador de C ++ predeterminado, mi versión de g ++ no está actualizada. Con clang ++, este archivo MAKE funciona bien.
fuente
Como se mencionó anteriormente, en el caso de un proyecto,
Makefile
o de otro modo, este es un problema de configuración del proyecto, donde probablemente también necesitará especificar otros indicadores.Pero, ¿qué pasa con los programas únicos, en los que normalmente escribirías
g++ file.cpp && ./a.out
?Bueno, me gustaría mucho como para tener algún
#pragma
entregar en al nivel de la fuente, o tal vez una extensión por defecto - por ejemplo.cxx
, o.C11
lo que sea, de disparo por defecto. Pero a día de hoy, no existe tal característica.Pero, como probablemente esté trabajando en un entorno manual (es decir, shell), puede tener un alias en usted
.bashrc
(o lo que sea):o, para los nuevos G ++ (y cuando quieras sentirte "real C ++ 11")
Incluso puede alias a
g++
sí mismo, si odia tanto C ++ 03;)fuente
Creo que podrías hacerlo usando un archivo de especificaciones.
En MinGW puede ejecutar
gcc -dumpspecs> specs
En donde dice
Lo cambias a
Y luego colóquelo en
/ mingw / lib / gcc / mingw32 / <version> / specs
Estoy seguro de que podrías hacer lo mismo sin una compilación de MinGW. Sin embargo, no estoy seguro de dónde colocar el archivo de especificaciones.
La carpeta probablemente sea / gcc / lib / o / gcc /.
fuente
strace -f gcc your-sources-here 2>&1 | grep specs
. En un sistema Debian (más antiguo), esto produce/usr/lib/gcc/i586-linux-gnu/4.9/specs
. ¡Creé esospecs
como se describe en la respuesta (necesita sudo para moverlo allí en Linux) y funciona como un encanto! Gracias.Si está utilizando sublime, este código puede funcionar si lo agrega en la compilación como código para el sistema de compilación. Puede utilizar este enlace para obtener más información.
fuente