La mayoría de las aplicaciones de Linux se compilan con:
make
make install clean
Como lo entendí, make toma nombres de objetivos de compilación como argumentos. Entonces, install
es un objetivo que copia algunos archivos y luego clean
es un objetivo que elimina los archivos temporales.
Pero, ¿qué destino se generará make
si no se especifican argumentos (por ejemplo, primer comando en mi ejemplo)?
all
es solo una convención.make install
in sudo, en lugar de toda la compilación.include
es otro makefile, cuyo primer objetivo es%.o : %.cpp
. Entonces, ¿el objetivo predeterminado es ... construir todos los archivos .cpp?Para salvar a otros unos segundos y evitar que tengan que leer el manual, aquí está la respuesta corta. Agregue esto a la parte superior de su archivo de creación:
mytarget ahora será el objetivo que se ejecuta si se ejecuta "make" y no se especifica ningún objetivo.
Si tiene una versión anterior de make (<= 3.80), esto no funcionará. Si este es el caso, puede hacer lo que anon menciona, simplemente agregue esto a la parte superior de su archivo make:
Referencias: https://www.gnu.org/software/make/manual/html_node/How-Make-Works.html
fuente
GNU Make también le permite especificar el destino de creación predeterminado utilizando una variable especial llamada
.DEFAULT_GOAL
. Incluso puede desarmar esta variable en el medio del Makefile, haciendo que el próximo objetivo en el archivo se convierta en el objetivo predeterminado.Ref: The Gnu Make manual - Variables especiales
fuente