2011-10-24 9 views
13

he descargado y construido sonido metálico versión 3.0 con el fin de jugar un poco con C++ 11 características, sin embargo, me sale este error (a pesar de que am usando la bandera -Wc++11-extensions)Activar el soporte de C++ 11 en Clang

S: \ llvm \ code> sonido metálico ++ exe -WC++ 11-extensiones variadic.cpp
variadic.cpp:. 4: 19: advertencia: plantillas variadic son una extensión C++ 11 [-WC++ 11-extensions]
plantilla < TypeName ... Args >

que he construido con sonido metálico VS10 en Windows 7 (64 bits) y la acumulación superado con éxito.


Editar: Como @cli_hlt señaló esto no es una advertencia de un error, el error es algo que no me pego incapaz de ejecutar el comando: programa no ejecutable. La causa principal de eso era que link.exe no estaba en la RUTA. Una vez que ejecuté desde el símbolo del sistema de VS todo estaba bien.

+23

Supongo que originalmente hiciste 'clang ++ variadic.cpp', vi la advertencia y agregué la bandera de advertencia esperando que la advertencia desapareciera. '-WC++ 11-extensions' está activado por defecto cuando se compila en el modo C++ 03 (el modo predeterminado), por eso es que lo vio. Puedes desactivarlo usando '-Wno-C++ 11-extensions', sin embargo, es mejor compilar en modo C++ 11 usando' -std = C++ 11' – bames53

+0

@ bames53 gracias, eso es exactamente lo que sucedió. – Motti

Respuesta

20

Aparecerá una advertencia, no es un error.

El modificador -W se utiliza para habilitar las advertencias del compilador. Entonces, para mi comprensión, al usar -WC++ 11-extensiones le dice al compilador que le advierta si está usando extensiones C++ 11.

Y eso es exactamente lo que sucede aquí.

+2

Tienes razón, soy un idiota. Las advertencias son seguidas por el error "no se puede ejecutar el comando: programa no ejecutable", pero esto sucede incluso para 'int main() {}'. Mi error.. – Motti

Cuestiones relacionadas