Я пытался создать код, который использует математические функции (например, pow
).Странное поведение gcc и math.h?
math.h
прилагается, а флаг -lm
используется во время сборки.
Когда компиляция называется, как это (-lm
флаг в начале команды), он не смог, сказав, что есть неопределенная ссылка на 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'
И когда -lm
флаг ставится на конец команды, это работает!
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
Это нормально?
Упс. Не заметил, что это старый вопрос. – AnT