我一直在尝试构建一些使用数学函数的代码(例如pow
)。
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
这是正常的吗?