gpt4 book ai didi

c - 请帮助我解决 gcc 编译器中的 make 文件错误

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:54:02 26 4
gpt4 key购买 nike

首先:我是linux新手。

第二——我看过What is missing in my makefile?但仍然没有发现我的 make 文件有什么问题。尽管我遇到了与他相同的错误。运行 makefile 后出现的错误:

    user@ubuntu:~/Documents/Myfiles/Adaptive Doppler$ make adaptiveav
gcc -o adaptiveav simpsimaav.o findvel.o do_fft.o four1.o subdc.o do_peak_n.o -g
simpsimaav.o: In function `main':
/home/user/Documents/Myfiles/Adaptive Doppler/simpsimaav.c:179: undefined reference to `cos'
/home/user/Documents/Myfiles/Adaptive Doppler/simpsimaav.c:180: undefined reference to `sin'
/home/user/Documents/Myfiles/Adaptive Doppler/simpsimaav.c:299: undefined reference to `sin'
/home/user/Documents/Myfiles/Adaptive Doppler/simpsimaav.c:299: undefined reference to `sin'
/home/user/Documents/Myfiles/Adaptive Doppler/simpsimaav.c:299: undefined reference to `sin'
/home/user/Documents/Myfiles/Adaptive Doppler/simpsimaav.c:325: undefined reference to `sqrt'
/home/user/Documents/Myfiles/Adaptive Doppler/simpsimaav.c:325: undefined reference to `sqrt'
/home/user/Documents/Myfiles/Adaptive Doppler/simpsimaav.c:326: undefined reference to `cos'
/home/user/Documents/Myfiles/Adaptive Doppler/simpsimaav.c:327: undefined reference to `sin'
simpsimaav.o: In function `rayleigh':
/home/user/Documents/Myfiles/Adaptive Doppler/simpsimaav.c:418: undefined reference to `log'
/home/user/Documents/Myfiles/Adaptive Doppler/simpsimaav.c:418: undefined reference to `sqrt'
/home/user/Documents/Myfiles/Adaptive Doppler/simpsimaav.c:421: undefined reference to `sqrt'
four1.o: In function `four1':
/home/user/Documents/Myfiles/Adaptive Doppler/four1.c:47: undefined reference to `sin'
/home/user/Documents/Myfiles/Adaptive Doppler/four1.c:49: undefined reference to `sin'
collect2: error: ld returned 1 exit status
make: *** [adaptiveav] Error 1

-------------------------------------------------------------

我的制作文件:

    OBJS= main.o do_fft.o find_m.o read_sig.o write_out.o allocin.o\
getopts.o read_form.o read_bin.o optlist.o usage.o normalize.o \
enquire.o init_fft.o subdc.o skip.o shortfile.o open_out.o \
han_win.o getyn.o record.o do_mom.o frq_arry.o four1.o look_nfo.o\
do_peak.o coefs_out.o do_smooth.o do_maxf.o accum.o pspect.o except.o\
get_info.o open_in.o test_read.o getstr.o getint.o open_nfo.o line_flush.o \
simpsim1.o


# Note: these routines are found in Lib/lib.ar
LIBOBJS= debug.c div_by.c getint.c getstr.c \
init_ap.c look_nfo.c open_in.c open_nfo.c test_read.c

# LIBS= -lm /usr/local/src/Cspect/Lib/lib.ar -lfpe
LIBS = -lm

CFLAGS= -g
rtest: rtest.o realft.o four1.o
gcc -o rtest rtest.o realft.o four1.o -lm $(CFLAGS)
itest: itest.o realft.o four1.o
gcc -o itest itest.o realft.o four1.o -lm $(CFLAGS)
test: test.o four1.o
gcc -o test test.o four1.o -lm $(CFLAGS)
invtest: invtest.o four1.o
gcc -o invtest invtest.o four1.o -lm $(CFLAGS)
tabtest: test.o ffttab.o
gcc -o test test.o ffttab.o -lm $(CFLAGS)

cspect: ${OBJS}
gcc -o cspect.exe ${OBJS} ${LIBS} ${CFLAGS}

rdtest: rdtest.o read_form.o
gcc -o rdtest rdtest.o read_form.o -g

fttest: sine.o do_fft.o four1.o subdc.o do_peak.o
gcc -o fttest sine.o do_fft.o four1.o subdc.o do_peak.o

adaptive: simpsima.o findvel.o do_fft.o four1.o subdc.o do_peak.o
gcc -o adaptive simpsima.o findvel.o do_fft.o four1.o subdc.o do_peak.o -g

notadaptive: simpsimna.o findvel.o do_fft.o four1.o subdc.o do_peak.o
gcc -o notadaptive simpsimna.o findvel.o do_fft.o four1.o subdc.o do_peak.o -g

adaptivevold: simpsimavold.o findvel.o do_fft.o four1.o subdc.o do_peak.o
gcc -o adaptivevold simpsimavold.o findvel.o do_fft.o four1.o subdc.o do_peak.o

adaptivev: simpsimav.o findvel.o do_fft.o four1.o subdc.o do_peak_n.o
gcc -o adaptivev simpsimav.o findvel.o do_fft.o four1.o subdc.o do_peak_n.o -g


notadaptivev: simpsimnav.o findvel.o do_fft.o four1.o subdc.o do_peak_n.o
gcc -o notadaptivev simpsimnav.o findvel.o do_fft.o four1.o subdc.o do_peak_n.o -g


adaptiveav: simpsimaav.o findvel.o do_fft.o four1.o subdc.o do_peak_n.o
gcc -o adaptiveav simpsimaav.o findvel.o do_fft.o four1.o subdc.o do_peak_n.o -g


.c.o:
gcc -c ${CFLAGS} $*.c

#simpsim.o: simpsim.c
# gcc -c simpsim1.c

: spect
strip spect
chmod 755 spect
chgrp user spect
mv spect /usr/local/bin

这不是我的 lib.ar 所在的目录:可能是为了这个?

# LIBS= -lm /usr/local/src/Cspect/Lib/lib.ar -lfpe
LIBS = -lm"

我不想让你做我的工作...只是建议我任何...或他们谈论这些事情的任何有用的网站...

我希望不要因为我是新人而受到粗鲁的评论。

谢谢。

最佳答案

undefined reference 都是在 libm.a 中找到的数学函数。 Makefile 中带有 -lm 的部分没有进入 gcc 命令。尝试将 -lm 添加到 gcc 命令,它应该可以工作。具体来说,这个

adaptiveav:  simpsimaav.o findvel.o do_fft.o four1.o subdc.o do_peak_n.o
gcc -o adaptiveav simpsimaav.o findvel.o do_fft.o four1.o subdc.o do_peak_n.o -g

末尾缺少对 $(LIBS) 的引用。

关于c - 请帮助我解决 gcc 编译器中的 make 文件错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28165371/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com