Próbowałem utworzyć kod korzystający z funkcji matematycznych (np. pow
).Dziwne zachowanie gcc i math.h?
math.h
jest dołączony, a flaga -lm
jest używana podczas kompilacji.
Kiedy kompilacja jest nazywana tak (-lm
flag na początku komendy), nie udało się, mówiąc, że nie jest niezdefiniowana odniesienia do 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'
A gdy flaga -lm
znajdzie się w koniec comand, działa!
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
Czy to normalne?
Ups. Nie zauważyłem, że to stare pytanie. – AnT