我已将math.h
1.c
和LDLIBS=-lm
中的makefile
包括在内。
1.c和2.c是当前目录中的一些文件。
制作文件如下:
dINES+=PROJECT_CONF_H=\"project-conf.h\"
CONTIKI_PROJECT = 1 2
all: $(CONTIKI_PROJECT)
CONTIKI = ../..
WITH_UIP6=1
UIP_CONF_IPV6=1
CFLAGS+= -DUIP_CONF_IPV6_RPL -DUIP_CONF_IPV6 -DWITH_UIP6
LDLIBS=-lm
ifdef PERIOD
CFLAGS=-DPERIOD=$(PERIOD)
endif
include $(CONTIKI)/Makefile.include
我已阅读相关的stackoverflow问题和答案,但无法理解为什么Undefined reference to sqrt
。
答案 0 :(得分:1)
首先,请注意include $(CONTIKI)/Makefile.include
可能会取消您上面所做的任何设置。所以我们无法调试你的问题。
然后,运行make -p
一次以了解内置规则(假设您正在使用GNU make)。请务必阅读documentation of make
。同时运行make --trace
和/或使用remake(例如remake -x
)来调试Makefile
。
请注意gcc
的程序参数顺序很重要。请先阅读gcc
文档的Invoking GCC章节。您希望使用可能添加到-Wall -g
行的CFLAGS+=
(以获取所有警告和调试信息)进行编译。也许您的CFLAGS=-DPERIOD=$(PERIOD)
行应为CFLAGS+= -DPERIOD=$(PERIOD)
也许您的LDLIBS=-lm
行应为LIBES= -lm
。
Undefined reference: sqrt
消息可能是因为您的编译命令(由make
运行)缺少-lm
或订单错误。