Es imprescindible comprender el código de forma correcta previamente a usarlo a tu proyecto si ttienes algo que aportar puedes compartirlo con nosotros.
Solución:
El parámetro utilizado después make
solo depende de los desarrolladores que escribieron el Makefile
. La documentación a la que hace referencia más adelante, Autotools, es solo una de las muchas formas de crear un Makefile
.
El estándar típico es make clean
eliminará todos los archivos intermedios, y make distclean
hace que el árbol quede tal como estaba cuando no estaba tarado (o algo bastante parecido), incluida la eliminación de cualquier salida del script de configuración. Así es como funciona el kernel de Linux, por ejemplo.
En otras palabras, depende totalmente de los desarrolladores para cada una de esas bibliotecas, y es por eso que a veces su clean
y otras veces es distclean
. Por cierto, no necesitas correr clean
/distclean
– Supongo que te hacen ejecutarlo solo para ahorrar espacio en disco. make install
por lo general, copia los archivos en el directorio de destino (nuevamente, depende de los desarrolladores); por lo general, lugares como /usr/lib
o /usr/bin
(también determinado por el script de configuración, si es un sistema de compilación de Autotools)
Estos matices son la razón principal por la que las personas usan sistemas de gestión de paquetes como paquetes RPM o Debian.
Según tengo entendido, es simplemente para proteger el espacio en disco. Después de compilar algún programa, tendrá una gran cantidad de archivos, por ejemplo, archivos de objetos que ya no son necesarios, porque están vinculados entre sí en los archivos binarios. Todo se puede recrear gastando nuevamente algo de tiempo de CPU.
Tome este ejemplo con la actual ffmpeg
código:
- después de clonar el
git
repo, la fuente toma 53 160 kB - después de ejecutar la configuración, son 53 632 kB
- después de la compilación tenemos más de 10 veces el valor inicial: 673 668 kB
make clean
reduce esto a 53 636 kB- y finalmente despues
make distclean
estamos casi al nivel justo después de la clonación: 53 188 kB
Por qué se usa el paso libvpx make clean
en vez de make distclean
Al momento de escribir la guía, libvpx no tenía ninguna regla en su Makefile
para el objetivo distclean
asi que clean
en su lugar.
Por qué make (dist)clean
se incluye después make install
make distclean
/make clean
se incluye después de cada make install
simplemente como una medida de precaución para proporcionar una “borrón y cuenta nueva” para los usuarios que regresan, cambian las opciones de configuración y vuelven a compilar (lo que ocurrió con más frecuencia de lo esperado).
En una versión anterior de la guía de compilación, sin el preventivo make distclean
uno de estos usuarios en ocasiones encontraría resultados inesperados.
Y si make distclean
/make clean
da error?
Como esto:
Makefile:198: Makefile: No such file or directory
make: *** No rule to make target '/tests/Makefile'. Stop.
o esto:
make: *** No rule to make target 'distclean'. Stop.
Ignoralo. Solo significa que probablemente corriste make distclean
dos veces que es inofensivo.
Si para ti ha sido de ayuda este artículo, sería de mucha ayuda si lo compartes con otros seniors de este modo nos ayudas a extender nuestra información.