Thread View: es.comp.os.linux.programacion
4 messages
4 total messages
Started by Jordi
Sat, 07 Aug 1999 00:00
Compilar varios *.c juntos??
Author: Jordi
Date: Sat, 07 Aug 1999 00:00
Date: Sat, 07 Aug 1999 00:00
9 lines
699 bytes
699 bytes
He hecho un programa formado por dos ficheros .c y uno .h �C�mo los compilo todos juntos con gcc? El equivalente en Windows ser�a hacer un proyecto en compilador de C. -- Linux User 134635 Ad�u, Jordi.
Re: Compilar varios *.c juntos??
Author: Dr. Slump
Date: Sat, 07 Aug 1999 00:00
Date: Sat, 07 Aug 1999 00:00
54 lines
2502 bytes
2502 bytes
Para hacerlo en una sola linia seria algo asi:
egcs -O2 -m486 -DCPU=586 -Idir_include file1.cc file2.cc -o file_out
Yo utilizo el compilador egcs, pero supongo que tambien servira con el gcc
Lo mejor, sin embargo, es que te crees un fichero "Makefile" para hacer eso.
Se hacen dos pasos, uno para compilar i otro para linkar...
Te envio un ejemplo para que lo veas.
En el apartado "comp_obj" se compilan todos los fuentes de los distintos
directorios creando los ficheros .o
En el apartado "_dds" se crea el programa ejecutable a partir de los .o que
se han creado.
Observa como en cada linea de compilacion indico en que directorios estan
los programas mediante unas constantes que se crean al principio: SOURCES i
OBJS
Ahora yo.
La pregunta del millon de gracias...
Alguien sabe como se haria para especificar que todos los ficheros objeto
".o" vayan a parar a determinado directorio ???. Ahora mismo van al
directorio por defecto
Lo he intentado haciendo esto en cada linea de compilacion:
$(CC) -I$(SOURCES)basic -c $(SOURCES)basic/*.cpp -o $(OBJS)*.o
Pero me da un error, diciendo que no se pueden mezclar los "-o" con los "
*.o "
Alguna idea ???
--------------------------------------
Ricard
slump@apdo.com
Jordi escribi� en mensaje <37AB8109.FE4A1AE7@nexo.es>...
>He hecho un programa formado por dos ficheros .c y uno .h
>
>�C�mo los compilo todos juntos con gcc?
>
begin 666 Makefile.dat
M4T]54D-%4R ]( ES<F,O"D]"2E,@/0EO8FHO"@HC($-O;7!I;&%T:6]N($1E
M=&%I;',*"D-#(#T@96=C<R M3S(@+6TT.#8@+41#4%4]-3@V"@IC;VUP7V]B
M:CH*"4!E8VAO($-O;7!I;&%N="!I($-R96%N="!/0DIS"@DD*$-#*2 M220H
M4T]54D-%4REB87-I8R M8R D*%-/55)#15,I8F%S:6,O*BYC<' *"20H0T,I
M("U))"A33U520T53*6-L87-S97,@+6,@)"A33U520T53*6-L87-S97,O*BYC
M<' *"20H0T,I("U))"A33U520T53*7!A<G-E<B M8R D*%-/55)#15,I<&%R
M<V5R+RHN8W!P"@DD*$-#*2 M220H4T]54D-%4RET96UP;&%T97,@+6,@)"A3
M3U520T53*71E;7!L871E<R\J+F-P< H*7V1D<SH@8V]M<%]O8FH*"2-E8VAO
K($-R96%N="!%>&5C=71A8FQE($9I;F%L"@DD*$-#*2 J+F\@+6\@9&1S"@``
`
end
Re: Compilar varios *.c juntos??
Author: Dr. Slump
Date: Sat, 07 Aug 1999 00:00
Date: Sat, 07 Aug 1999 00:00
12 lines
758 bytes
758 bytes
Nota, el nombre del fichero ha de ser simplemente "Makefile" El .dat olvidalo... Para que todo compile, en el ejemplo, se debe hacer la llamada: make _dds Y todo deberia compilar... -------------------------------- Ricard slump@apdo.com
Re: Compilar varios *.c juntos??
Author: Matmota
Date: Sat, 07 Aug 1999 00:00
Date: Sat, 07 Aug 1999 00:00
58 lines
2314 bytes
2314 bytes
Jordi wrote: > > He hecho un programa formado por dos ficheros .c y uno .h > > �C�mo los compilo todos juntos con gcc? > > El equivalente en Windows ser�a hacer un proyecto en compilador de C. En unix lo cl�sico es make. Para eso, haces un archivo con nombre "makefile" (el equivalente del fichero de proyecto), en el que le especificas c�mo construir el proyecto a partir de los ficheros fuente. (man make, info make) Por ejemplo, para compilar un proyecto compuesto por los siquientes ficheros: - Fichero1.h - Fichero1.c, que necesita Fichero1.h - Fichero2.c, que tambi�n necesita Fichero1.h El makefile podr�a ser algo as�: (entre las l�neas de corte) ------------------------8<-------------------- CC=gcc CCOPTS=-Wall -O3 -m486 -malign-double EJECUTABLE=nombre_ejecutable all: Fichero1.o Fichero2.o $(CC) $(CCOPTS) Fichero1.o Fichero2.o -o $(EJECUTABLE) Fichero1.o: Fichero1.h Fichero1.c $(CC) $(CCOPTS) -c Fichero1.c Fichero2.o: Fichero1.h Fichero2.c $(CC) $(CCOPTS) -c Fichero2.c clean: rm -f *.o rm -f $(EJECUTABLE) ------------------------8<--------------------- Para compilar, escribir�as: make Y para dejar s�lo las fuentes, sin binarios: make clean Naturalmente es s�lo una de las casi infinitas formas de construir un proyecto con make. Si lo que quieres es usar s�lo gcc, tal vez podr�as hacerlo con: gcc -c Fichero1.c Fichero2.c gcc Fichero1.o Fichero2.c -o nombre_ejecutable En fin, como todo en Un*x, hay tropecientas posibilidades. Espero que te sirva de algo, Matmota at linuxfreak.com
Thread Navigation
This is a paginated view of messages in the thread with full content displayed inline.
Messages are displayed in chronological order, with the original post highlighted in green.
Use pagination controls to navigate through all messages in large threads.
Back to All Threads