首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >对sqrt的未定义引用

对sqrt的未定义引用
EN

Stack Overflow用户
提问于 2017-02-02 06:25:25
回答 1查看 1.1K关注 0票数 0

我把math.h收录在1.c中,LDLIBS=-lm收录在makefile中。

1.c和2.c是当前目录中的一些文件。

制作文件如下:

代码语言:javascript
复制
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

我读过相关的堆叠溢出问题和答案,但无法理解为什么Undefined reference to sqrt

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-02-02 06:31:13

首先,请注意,include $(CONTIKI)/Makefile.include可以取消您在上面设置的任何设置。所以我们不能调试您的问题。

然后,运行make -p一次以了解内置规则(假设您使用的是GNU制造)。一定要阅读make。还可以运行make --trace和/或使用重做 (例如,作为remake -x)调试Makefile

请注意,gcc的程序参数顺序非常重要。首先阅读援引GCC文档的gcc章节。您希望使用-Wall -g (获取所有警告和调试信息)进行编译,这些警告和调试信息可能会添加到CFLAGS+=行中。也许你的

CFLAGS=-DPERIOD=$(PERIOD)行应该是CFLAGS+= -DPERIOD=$(PERIOD)

也许您的LDLIBS=-lm行应该是LIBES= -lm

Undefined reference: sqrt消息可能是因为您的编译命令(由make运行)缺少-lm或顺序错误。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41995511

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档