¿Cómo puedo compilar un programa en C sin realizar ninguna optimización con gcc/g ++?Cómo compilar el programa C sin ninguna optimización
Respuesta
gcc main.c
o
g++ main.cpp
por defecto no hace ninguna optimización. Solo cuando especifica -O1, -O2, -O3, etc...
hace optimizaciones.
O puede usar el interruptor -O0
para hacerlo explícito.
No debe obtener ninguna optimización a menos que la solicite a través del -O
. Si necesita deshacer algunos valores predeterminados proporcionados por su sistema de compilación, -O0
lo hará por usted, siempre que sea el último indicador -O
en la línea de comando.
Usando gcc, pase en la bandera: -O 0.
Utilice el interruptor de compilador -O0.
El uso de -O0 es lo más cercano que conozco, sin embargo, a diferencia de otras respuestas, esto no significa cero optimizaciones. Se puede contar el número de optimizaciones habilitadas para los distintos niveles de optimización de gcc como este (esto es gcc 4.8.2):
$ gcc -Q -O0 --help=optimizers | grep enabled | wc -l
52
$ gcc -Q -O1 --help=optimizers | grep enabled | wc -l
80
$ gcc -Q -O2 --help=optimizers | grep enabled | wc -l
110
$ gcc -Q -O3 --help=optimizers | grep enabled | wc -l
119
Así que en -O0, hay 52 optimizaciones habilitadas. Supongo que uno podría deshabilitarlos uno por uno, pero nunca he visto eso hecho.
Tenga en cuenta que la página man gcc dice:
-O0 Reduce compilation time and make debugging produce the expected results. This is the default.
No es prometedor cero optimizaciones.
No soy un desarrollador gcc, pero supongo que dirían que las optimizaciones -O0 se han vuelto tan estándar que ya no se pueden llamar optimizaciones, sino "estándares". Si eso es cierto, es un poco confuso, ya que gcc todavía los tiene en la lista de optimizadores. Tampoco conozco la historia lo suficientemente bien: quizás para una versión anterior -O0 significaba realmente cero optimizaciones ...
- 1. impulso :: ninguna optimización typeid para C++ 11
- 2. Compilar dos versiones del programa C# automáticamente
- 3. ¿Cómo puedo compilar un programa Java en Eclipse sin ejecutarlo?
- 4. C# - Programa sin ventana
- 5. tipos conflictivos error al compilar el programa c usando gcc
- 6. ¿Escribir y compilar un programa C en Windows XP?
- 7. Cómo compilar un archivo C sin visual studio
- 8. Cómo compilar y ejecutar un programa C/C++ en el sistema Android
- 9. ¿Cómo compilar GCC sin _alloca?
- 10. ¿Cómo puedo terminar ncurses sin finalizar el programa C++?
- 11. ¿Cómo compilar y ejecutar un programa C/C++ en el sistema Android (como MinGW en Windows)?
- 12. Optimización del programa C con tecnologías similares a SLAB
- 13. ¿Cómo puedo compilar un programa Go?
- 14. Compilar y ejecutar un programa en C en Emacs
- 15. Niveles de optimización en gcc cambiando el comportamiento del programa c
- 16. Compilar programa en C++ en Mac para funcionar en Linux
- 17. ¿Cómo creo un programa C# sin una GUI?
- 18. Ninguna función contiene contador de programa para el cuadro seleccionado
- 19. ¿Cómo compilar el programa Go que consta de varios archivos?
- 20. Cálculo e^x sin utilizar ninguna función
- 21. perdida '\' en el programa de error al compilar
- 22. ¿Cómo correlacionar teclas de función para compilar mi programa?
- 23. jQuery fadeOut sin pantalla ninguna?
- 24. C++ Cómo compilar dll en .exe
- 25. Seleccionar elementos sin ninguna clase
- 26. cómo compilar y ejecutar el programa java en otro programa java?
- 27. VS2010 C++ optimización
- 28. Error al compilar un programa SpiderMonkey incrustado
- 29. Maven - ¿Cómo compilar pruebas sin ejecutarlas?
- 30. Cómo (cruzado) compilar impulso SIN python?
En el caso de que no esté buscando un interruptor de compilación, podría estar buscando declarar su variable (s) 'volátil'. – user786653
¿Por qué quieres que se apaguen? ¿Tiene alguna razón para creer que las optimizaciones están 1) habilitadas y 2) causándole problemas? Es raro que una optimización cause problemas con el código escrito correctamente. Sin embargo, a menudo es útil usar -O0 en combinación con -ggdb para la depuración. –