create compiler c++ gcc makefile

c++ - compiler - Cómo MAKE sabe qué archivo fuente verificar



makefile java (2)

Ya se proporcionaron enlaces de documentación obvia. Solo quería comentar tu ejemplo. Usted dijo que haga lo siguiente:

El archivo hellomake basa en hellomake.o y hellofunc.o , es decir. ambos son requisitos previos de hellomake . Si algún requisito previo cambia desde la última compilación, se reconstruirá hellomake . Cómo se hace (re) construcción es la segunda línea, es decir. la invocación de gcc.

Para responder a su pregunta: El fragmento proporcionado no buscará ningún archivo cpp. Necesitas diferentes reglas además para eso, es decir. algo como

%.o: %.cpp gcc -I. -c @< -o $@

En caso de que esté buscando un Makefile bastante genérico para empezar, lo recomendaría. Ha sido la base para muchos de mis Makefiles en uso.

¿Cómo este script simple make sabe que algunos de los archivos cpp han cambiado? ¿Significa que para cada archivo .o buscará el correspondiente .cpp uno? ¿Qué sucede si la extensión será diferente? Por ejemplo, .c

hellomake: hellomake.o hellofunc.o gcc -o hellomake hellomake.o hellofunc.o -I.

UPD: De acuerdo con mi comprensión, las escrituras que proporciono no deberían mirar los archivos c y cpp. Y cuando pedí construir el proyecto por segunda vez, MAKE me dijo "make: ''hellomake'' está actualizado. Pero me sorprendió cuando cambié a hellomake.cpp MAKE ha decidido reconstruir el proyecto. ¿Por qué?


GNU make tiene muchas reglas incorporadas. Ejecuta make -p para encontrarlos. Y usa las reglas existentes en tu Makefile , mira esto o aquello o esto