Re: [OT] Compilación parcial
2008/6/3 José Pablo Fonfría <jpablo.fonfria@gmail.com>:
> Hola a tod@s,
>
> Me gustaría haceros una pregunta acerca de programación. Soy científico,
> llevo haciendo un programa en fortran 90 desde hace varios años y
> compilándolo con gfortran. Debido al gran tiempo empleado, el número de
> líneas del código es ya relativamente grande. El problema es que, conforme
> el programa crece en extensión y complejidad, el tiempo empleado en cada
> compilación aumenta.
>
> ¿Existe alguna manera de compilar una parte del código completo y así
> reducir el tiempo de compilación?
>
> Gracias de antemano.
>
> Pablo.
>
>
> --
> To UNSUBSCRIBE, email to debian-user-spanish-REQUEST@lists.debian.org
> with a subject of "unsubscribe". Trouble? Contact
> listmaster@lists.debian.org
>
>
Si tienes el programa en modulos, claro que si, puedes usar GNUmakefile
Te paso un codigo que tengo de un colega, como ejemplo, tendrias que
cambiarle las banderas de compilador y del linker, tambien el nombre
del programa. En este caso el compilador que uso es gcc, el linker es
mpicc y el formato de tus archivos, en este caso como uso C, pues son
.c pero en fortran supongo usas .f95 o .f
lo copias a tu path (PRIMERO PRUEBALO EN OTRO LADO NO SEA QUE VAYAS A
MODIFICAR LOS WILDCARDS y borres todo) y lo usas como:
make (este comando te compila solo los modulos que haz modificado!!!)
make clean (limpia todos los objetos, asi que si le daz primero make
clean y despues make te compilara TODO tu codigo)
make install (te instala el codigo en /usr/bin, lo tienes que ejecutar
como root)
Esto te ahorrara muchisimo tiempo al compilar solo lo que modificas.
Ahora si tienes tu codigo en un solo bloque, pues creo que sera medio
complicado.
#
# $Id$
#
# MAKEFILE GNU MAKE for Linux Version 1.0
# Copyright (C) 2002 by Free Software Foundation, Inc.
# Author: Antonio Tellez Flores <atellezf@yahoo.com.mx>
# Modify by: itztli@gmail.com
# COPYING
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License as
# published by the Free Software Foundation; either version 2, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public
# License along with this program; if not, write to the Free
# Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139,
# USA.
#
# ###################### Revision History #######################
#
# $Log$
# ###############################################################
#================================================================
# GNU C COMPILER FOR LINUX
#================================================================
#CFLAGS := -g -ggdb -I.
# Make declarations
CC := gcc
LINKER := mpicc
# C flags for debbuging.
CFLAGS := -g -ggdb -I. -O
LDFLAGS := -lm
CFILES := $(wildcard *.c)
OBJS := $(patsubst %.c, %.o, $(CFILES))
PROGRAM := pakal
RM := rm -f
INSTALAR := cp $(PROGRAM) /usr/bin/
#----------------------------------------------------------------
# Make rules
.PHONY: all clean distclean
compile: $(PROGRAM)
all: clean compile
@echo -en "\n"
clean:
$(RM) *~ core $(OBJS) "#*"
distclean: clean
$(RM) $(PROGRAM)
install:
$(INSTALAR)
#----------------------------------------------------------------
# Make depend
$(OBJS): %.o: %.c
$(CC) -c $<
@echo -en "\n"
$(PROGRAM): $(OBJS)
$(LINKER) $(LDFLAGS) $(OBJS) -o $(PROGRAM)
#---------------------------------------------------------------
# End Make
--
Atte
ItZtLi
¤º°°º¤ø,¸¸,ø¤º°°º¤ø,¸¸,ø¤º°`°º¤ø,¸
Nahui Tonalli Icniuhtli.
¤º°°º¤ø,¸¸,ø¤º°°º¤ø,¸¸,ø¤º°`°º¤ø,¸
Reply to: