saldo español compilador cash card gcc

español - gcc windows



GCC#pragma para detener la compilación (6)

Esto funciona:

#include <stophere>

gcc se detiene cuando no puede encontrar el archivo de inclusión. Quería que gcc se detuviera si C14 no era compatible.

#if __cplusplus<201300L #error need g++14 #include <stophere> #endif

¿Existe una directiva pragma de GCC que detendrá, interrumpirá o abortará el proceso de compilación?

Estoy usando gcc 4.1 pero quisiera que el pragma también esté disponible en las versiones de gcc 3.x.


No sé sobre un #pragma , pero #error debe hacer lo que quiera:

#error Failing compilation

Terminará la compilación con el mensaje de error "Falla la compilación"


Puedes usar :

#pragma GCC error "my message"

Pero no es estándar.


mientras que normalmente #error es suficiente (y portátil), hay momentos en los que desea utilizar un pragma , es decir, cuando desea ocasionalmente causar un error dentro de una macro.

Aquí hay un ejemplo de uso que depende de C11''s _Generic y _Pragma

Este ejemplo asegura que var no es un int * o un short * pero no un const int * en tiempo de compilación.

Ejemplo:

#define MACRO(var) do { / (void)_Generic(var, / int *: 0, / short *: 0, / const int *: 0 _Pragma("GCC error /"const not allowed/"")); / / MACRO_BODY(var); / } while (0)


Probablemente quieras #error :

edd@ron:/tmp$ g++ -Wall -DGoOn -o stopthis stopthis.cpp edd@ron:/tmp$ ./stopthis Hello, world edd@ron:/tmp$ g++ -Wall -o stopthis stopthis.cpp stopthis.cpp:7:6: error: #error I had enough edd@ron:/tmp$ cat stopthis.cpp #include <iostream> int main(void) { std::cout << "Hello, world/n"; #ifndef GoOn #error I had enough #endif return 0; } edd@ron:/tmp$