Jump to content
  • 0

[C++] Ver codigo completo con includes y todo


Mgbu
 Share
Followers 0

Question

Estaba programando algo en C++ y pensé que podía ser interesante ver el código completo de mi programa

 

Como uso includes para SDL y para algunas librerías del sistema como <string> segun entiendo el precompilador directamente copia y pega los headers de todo lo que incluyo. ¿Puedo guardar el resultado de eso en un archivo para verlo?

 

Estaría bueno para ver cuánto de mi programa hice yo y cuánto lo incluí

Link to post
Share on other sites

5 answers to this question

Recommended Posts

  • 0

Esto es lo que encontré sobre el tema, aunque no estoy seguro de haber acertado, me falta probarlo :D

gcc -E archivo.c

o

g++ -E archivo.cpp

Fuente: http://stackoverflow.com/questions/3742822/preprocessor-output

 

Y aquí una buena lista con opciones de comandos relacionados.

 

http://www.linuxtopia.org/online_books/programming_tool_guides/linux_using_gnu_compiler_collection/preprocessor-options.html

Link to post
Share on other sites
  • 0

Gracias, no sabía bien cual era el término, había que buscar sobre ver la salida del preprocesador. También me olvidé de avisar que uso Cmake
 
Como uso Cmake tuve que buscar otro metodo, porque el gcc solito no sabía encontrar los includes. Además algo raro es que si le decía a Cmake que use -E al compilar no hacía nada, no me mostraba la salida, debe ser porque no make o cmake no siempre muestran las salidas de lo que ejecutan.
 
Como decía acá se puede también de otra forma:

cmake -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Debug ../src/
make main.cpp.i

O sea, lo unico que había que hacer era en vez de usar make solo, hacer make main.cpp.i
 
Después ese main.cpp.i se puede abrir con un editor de texto y ver todo.
 
Como habían muchas lineas multiples en blanco (por ejemplo, 5 lineas en blanco seguidas) comprimí esas en una sola linea en blanco
Para eso, en vim usé :g/^$/,/./-j

Después habían muchas lineas que empezaban con #, las borré con :g/^\#/d

Y al final pasé las líneas que había escrito yo a otro archivo para comparar

 

Resultado:

Líneas que escribí: 256

Líneas que no escribí: 33087

 

Escribí el 0,77%

 

Hay que tener en cuenta que son solamente los headers, incluyendo el código creo el porcentaje sería menor

Creí que lo incluido de SDL (<SDL.h>, <SDL_mixer>, <SDL_image.h> y <SDL_ttf.h>), iba a ser más grande que lo incluido del sistema, porque solamente usé <string>, <stdio>, <sstream> y <cstdint>. Pero al final casi toda la salida fue de cosas de la libreria std

Edited by Mgbu
Link to post
Share on other sites
  • 0

Si, yo tampoco lo sabia, fue gracias a ir probando las búsquedas de términos que encajaran mas o menos en el resultado que se esperaba.

 

Lo de los filtros de Vi es un buen aporte, al menos para mi, pues le tengo un poco de miedo a ese editor :sweat:

 

Buen post Mbgu, estos son buenos apuntes a tener en cuenta! :ok:

Link to post
Share on other sites
  • 0

Empecé con vim hace unos dos meses mas o menos. Cuesta mucho pero ya le voy agarrando la mano.

Tendría que hacer un post, no sé si es más eficiente porque tampoco soy de programar mucho. Lo que extraño es el autocompletado, todavía no lo pude hacer funcionar

Link to post
Share on other sites
  • 0

Empecé con vim hace unos dos meses mas o menos. Cuesta mucho pero ya le voy agarrando la mano.

Tendría que hacer un post, no sé si es más eficiente porque tampoco soy de programar mucho. Lo que extraño es el autocompletado, todavía no lo pude hacer funcionar

 

Pues lo acabo de instalar para probar otra vez la versión del terminal y creo que no la voy a usar :sleep: esta me sigue dando miedo y con nano por ahora me defiendo, pero también instale la versión gtk de vim... Esta ya me da menos miedo  :D 

 

Estuve mirando lo del autocompletado en este sitio, -> http://plagatux.es/2007/12/programando-en-cc-con-vim/  No parece difícil de instalar, pero tampoco se facilita mucho que digamos. A veces creo que "algunos" programas bajo la filosofía y licencia GNU son bastante complicados, lo que no sé es si hay alguna razón para ello.

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share
×
×
  • Create New...