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

k2arahey  于 2023-05-22  发布在  其他
关注(0)|答案(1)|浏览(124)

**关闭。**此题需要debugging details。目前不接受答复。

编辑问题以包含desired behavior, a specific problem or error, and the shortest code necessary to reproduce the problem。这将帮助其他人回答这个问题。
两年前关闭。
Improve this question
我已经对这个问题做了一些研究,并在我的标签列表的末尾包括了-lm,但我总是得到一个未定义的引用____与几个数学函数,如cos和sin。编辑:我包括<math.h><stdlib.h>,<stdio.h>

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
ni65a41a

ni65a41a1#

链接器不会链接libm,除非在使用它的对象文件之后指定它。所以你需要改成

LDFLAGS = -lm

%: %.o 
     $(CC) $(CFLAGS) -o $@ $^ $(LDFLAGS)

相关问题