Ho cercato di creare codice che utilizza funzioni matematiche (ad esempio pow
).Strano comportamento di gcc e math.h?
math.h
è incluso e la bandiera -lm
viene utilizzata durante la compilazione.
Quando la compilazione viene chiamato in questo modo (-lm
bandiera all'inizio del comando), non è riuscito, dicendo che c'è un riferimento definito per 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'
E quando la bandiera -lm
è messo al fine del comando, funziona!
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
È normale?
Oops. Non ho notato che questa è una vecchia domanda. – AnT