He estado intentando construir algún código que use funciones matemáticas (por ejemplo, pow
).Comportamiento extraño de gcc y math.h?
math.h
se incluye, y la bandera -lm
se utiliza durante la compilación.
Cuando la compilación se llama así (-lm
bandera en el comienzo de la orden), que fracasaron, diciendo que hay una referencia indefinida a pow
:
gcc -lm -O3 main.o clustering.o grassberger.o hash.o list.o mat.o metropolis.o motif_ids.o output.o permutation.o prob.o random.o results.o role.o stubs.o switches.o -o mfinder
main.o: In function `get_sn_motif_id':
main.c:(.text+0x28d): undefined reference to `pow'
Y cuando la bandera -lm
se pone al fin del comando, funciona!
gcc -O3 main.o clustering.o grassberger.o hash.o list.o mat.o metropolis.o motif_ids.o output.o permutation.o prob.o random.o results.o role.o stubs.o switches.o -o mfinder -lm
¿Es esto normal?
Oops. No noté que esta es una vieja pregunta. – AnT