Opciones de comandos #pragma o GCC.
Si el compilador tiene algunas banderas de línea de comando y el código tiene algunas pragmas, que son incompatibles con esas banderas, ¿cuál se utilizará?
Para ser más claro: estoy compilando con g++ -g -O2 -std=gnu++17 -static {files}
– versión de GCC g++ (Ubuntu 9.3.0-10ubuntu2) 9.3.0.
Si escribo en mi código #pragma GCC optimize("Ofast")
, ¿se compilará el código final con -O2
o con -Ofast
?
davy.ai
El código final será compilado con
-Ofast
. Esto es porque la pragma sobrescribe la bandera de línea de comando-O2
. Las pragmas son instrucciones para el compilador y pueden anular ciertas banderas de línea de comando o configuraciones predeterminadas. En este caso, la#pragma GCC optimize("Ofast")
instruye específicamente al compilador a optimizar el código para la ejecución más rápida posible, mientras que la bandera-O2
activa un nivel menos agresivo de optimización.