yo sólo estoy empezando con el compilador g ++ en Linux y tengo algunas preguntas sobre las opciones del compilador. Aquí están losOptimización y banderas para hacer una biblioteca estática con g ++
optimizaciones
leí acerca de parámetros de optimización -O1
, -O2
y -O3
en la página del manual g ++. No entendí cuándo usar estas banderas. Por lo general, ¿qué nivel de optimización usa? El manual de g ++ dice lo siguiente para -O2
.
Optimizar aún más. GCC realiza casi todas las optimizaciones admitidas que no implican una compensación de velocidad de espacio. El compilador no realiza desenrollado de bucle o función en línea cuando especifica -O2. En comparación con -O, esta opción aumenta el tiempo de compilación y el rendimiento del código generado.
Si no se está realizando la alineación y el desenrollado del lazo, ¿cómo se logra dicho rendimiento? ¿Se recomienda esta opción?
biblioteca estática
¿Cómo se crea una biblioteca estática por medio de g ++? En Visual Studio, puedo elegir un proyecto de biblioteca de clase y se compilará en un archivo "lib". ¿Cuál es el equivalente en g ++?
[En 2003, el -O3 de GCC tenía errores y recibió una mala reputación.] (Http://stackoverflow.com/a/11546263/845092) Hoy en día produce código incorrecto solo cuando se rompen las reglas, pero a la gente le gusta romper reglas y enojarse cuando ocurren las consecuencias, por lo que se quedan con -O2 para evitar las consecuencias de escribir código ilegal. –