Makefile 使用数学库生成命令

Makefile 使用数学库生成命令,makefile,ldflags,Makefile,Ldflags,我需要运行makefile的make命令。但当我运行这个make命令时,我得到了一个错误,即“未定义对'log'的引用”,因为我知道这个事实,它不包括数学库,我们必须在运行时包括它。我知道,如果我使用gcc comiler运行它,那么我可以在最后编写-lm,它将包括数学库。我的问题是我需要使用make命令运行它,即-makelu 在这里,如果我写makelu-lm,它不是链接数学库。请帮忙 使用此链接 我更新了make文件,但仍然存在相同的问题。请帮忙 SHELL=/bin/sh BENCHMA

我需要运行makefile的make命令。但当我运行这个make命令时,我得到了一个错误,即“未定义对'log'的引用”,因为我知道这个事实,它不包括数学库,我们必须在运行时包括它。我知道,如果我使用gcc comiler运行它,那么我可以在最后编写-lm,它将包括数学库。我的问题是我需要使用make命令运行它,即-makelu

在这里,如果我写makelu-lm,它不是链接数学库。请帮忙

使用此链接 我更新了make文件,但仍然存在相同的问题。请帮忙

SHELL=/bin/sh
BENCHMARK=ep
BENCHMARKU=EP

include ../config/make.def

OBJS = ep.o ${COMMON}/c_print_results.o ${COMMON}/c_${RAND}.o \
       ${COMMON}/c_timers.o ${COMMON}/c_wtime.o

include ../sys/make.common
LDLIBS=-lm
LDFLAGS=-lm


${PROGRAM}: config ${OBJS}
    ${CLINK} ${CLINKFLAGS} -o ${PROGRAM} $(LDFLAGS) $(LOADLIBES) ${OBJS} ${C_LIB}


ep.o:       ep.c npbparams.h
    ${CCOMPILE} ep.c

clean:
    - rm -f *.o *~ 
    - rm -f npbparams.h core

为什么makefile引用了各种不存在的变量,比如
LOADLIBES
C_LIB
?为什么要设置从未使用过的变量,如
LDLIBS

它不起作用的原因是您将库引用放在
LDFLAGS
变量中,该变量在link命令的早期出现在任何对象文件之前。因此,当链接器转到数学库中的link时,它认为不需要它,因为还没有任何东西在使用它

您必须将库放在链接行的末尾

由于末尾已经有了未使用的
C_LIB
变量,如果添加:

C_LIB = -lm

然后它应该会起作用。

如果您的问题已经解决,请将问题标记为已回答(通过单击您使用的答案旁边的复选标记),以便其他人知道它已回答。