3 votos

Versión del compilador de c++ por defecto

Necesito compilar algunos pequeños archivos cpp así que me gustaría hacerlo a través de la terminal. Estoy usando Catalina 10.15.5. Descubrí que MacOS tiene un compilador clang incorporado y puedo usar comandos como c++ o g++ . Es la versión:

Apple clang version 11.0.3 (clang-1103.0.32.29)
Target: x86_64-apple-darwin19.5.0
Thread model: posix

Pero necesito saber qué versión de c++ utiliza (por ejemplo, c++17, c++11 o incluso una versión menor). Es realmente importante para mis archivos.

Sé que puedo especificar la versión como c++ --std=gnu++17 pero la pregunta es cómo hacer que el compilador lo use por defecto (sin alias, debe haber un comando para cambiarlo). O al menos, ¿cómo saber qué versión utiliza ahora mismo?

1 votos

El comando más sencillo para un solo archivo, por ejemplo, foo.cpp es: clang++ -Wall -std=c++17 foo.cpp -o foo . Para muchos archivos .cpp, un pequeño makefile será suficiente.

0 votos

@Yoan mi propósito es ejecutar varios archivos durante mi examen para demostrar que al menos compilan. Y no se me permite escribir el siguiente antes de terminar el anterior. Así que usar el terminal es mucho más fácil y rápido)

4voto

Jose Chavez Puntos 645

Puedes encontrar la versión por defecto buscando en el manual:

man clang

Dice así:

El estándar de lenguaje C++ por defecto es gnu++14.

Es básicamente lo mismo que C++14, pero con algunas extensiones específicas de GNU.

La forma de cambiar la configuración por defecto cuando se utiliza "independiente" (es decir, sin un proyecto de Xcode, Makefile o similar) es en realidad para hacer un alias de shell. No hay clang donde puedes cambiar el valor por defecto - tendrás que recompilar el compilador para cambiarlo.

0 votos

Y un makefile o un proyecto xcode es mucho mejor que un alias para esto. Yo empezaría con un proyecto xcode

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X