Ciao a tutti,
sto utilizzando un makefile per compilare tutta una serie di moduli che serviranno a creare un piccolo progetto C, ma ho un problema:
nel file modulo1.c (uno dei tanti file che compongono il progetto) ho usato la funzione pow(), e quindi ho incluso la libreria math.h nel file .c, ma questa libreria però in fase di compilazione non viene trovata.
Mi vengono restituiti i seguenti errori:
modulo1.c:(.text+0x4c3): undefined reference to `pow'
collect2: ld returned 1 exit status
Sono venuto a sapere che per usare le funzioni matematica a volte bisogna aggiungere l'opzione
-lm, però dove vado a scrivere questa opzione??
La prima cosa che ho pensato è di includerla nel makefile, ma in che punto?
Ho provato in un po' di modi ma il problema si ripresenta.
Vi posto il contenuto del file makefile:
objects = main.o modulo1.o solver.o clausole.o vettori.o
modulo1: $(objects)
cc -o modulo1 $(objects)
main.o: solver.o modulo1.o clausole.o vettori.o main.c \
letterali.h vettori.h clausole.h solver.h
cc -c main.c
modulo1.o: solver.o vettori.o clausole.o modulo1.c letterali.h \
vettori.h clausole.h solver.h modulo1.h
cc -c modulo1.c
solver.o: vettori.o clausole.o solver.c
cc -c solver.c
clausole.o: vettori.o clausole.c vettori.h letterali.h clausole.h
cc -c clausole.c
vettori.o: vettori.c vettori.h
cc -c vettori.c
.PHONY: clean
clean:
rm $(objects) modulo1
Cosa posso fare??
Dove includere questa opzione o cos'altro fare?
Grazie