Construir um makefile (arquivo chamado makefile)
como em:
-------------->
CC = gcc
OBJECTS = InitSem.o P.o
V.o
prog:
$(OBJECTS); \
ar -r libproj.a $(OBJECTS);
\
ranlib libproj.a
<--------------
Em que InitSem.c , P.c e V.c
seriam arquivos contendo as funções InitSem(sem,value),
P(proc,sem)
e V(sem).
Ao executar-se o comando make seriam
compilados os conteúdos desses arquivos e criada uma biblioteca
chamada
libproj.a (se a compilação for bem
sucedida) e com isso o programa poderia ser testado usando-se um outro
arquivo, contendo a função
main(), que teria o código
de teste do programa.
A compilação desse arquivo (teste.c
por exemplo) seria feita dessa forma:
gcc -o executa teste.c
-L. -lproj
Além disso, as estruturas de dados deveriam
estar em um arquivo separado (estruturas.h por exemplo), que deve
ser incluído por todos os demais arquivos a serem compilados (com
#include
"estruturas.h" nesse caso).
Outro aspecto a considerar é que em Unix não existe carregamento
antecipado de bibliotecas. Assim, se usamos a biblioteca matemática ou
a de threads devemos incluir tais bibliotecas na linha de comando, como
em
gcc -o executa teste.c
-L. -lm -lpthread
|