Makefile:对 acos 的未定义引用[已关闭]

问题描述 投票:0回答:1

我对这个问题做了一些研究,并在标签列表的末尾添加了

-lm
,但我不断收到对 ____ 的未定义引用,其中包含几个数学函数,如
cos
sin

编辑:我包括了

CFLAGS= -std=gnu18 -Wall -Wextra -Who-unused -pedantic -g -O3 -lm
CC=gcc
PROGRAMS=main
LIBS=libct.a
OBJECTS= mex.o count.o id.o orag.o
all: $(PROGRAMS) $(LIBS)
libct.a: $(OBJECTS)
        ar rcs $@ $^
main: main.o $(OBJECTS)
%.o: %.c
     $$(CC) $(CFLAGS) -c -o $@ $<
%: %.o 
     $$(CC) $(CFLAGS) -o $@ $^
.PHONY:clean_objects clean all
clean_objects:
        rm -f *.o
clean:
        rm -f $(PROGRAMS) $(LIBS) *.o
c gcc makefile
1个回答
2
投票

链接器不会链接

libm
,除非您在使用它的目标文件之后指定它。所以你需要更改为

LDFLAGS = -lm

%: %.o 
     $(CC) $(CFLAGS) -o $@ $^ $(LDFLAGS)
© www.soinside.com 2019 - 2024. All rights reserved.