Contiki:对单独源文件中定义的函数的未定义引用

时间:2018-01-11 21:48:10

标签: c makefile contiki

我正在使用Contiki操作系统编写程序。

我有remote_firmware.c文件和一个名为parser的文件夹,其中包含文件parser.hparser.c,其中我编写了方法void test()。我在parser.h中添加了remote_firmware.c,其中包含:

#include "parser/parser.h"

Makefile看起来像这样:

CONTIKI_PROJECT = remote_firmware
all: $(CONTIKI_PROJECT)

#UIP_CONF_IPV6=1

CONTIKI_WITH_RIME = 1
CONTIKI = $(HOME)/contiki

include $(CONTIKI)/Makefile.include

当我尝试构建此错误时:

  

未定义参考' test'

我知道Makefile需要知道parser.h,但我不知道怎么做。我试过这里提出的几个解决方案,但我想我做错了。也许有人知道该怎么做?

非常感谢你。

2 个答案:

答案 0 :(得分:1)

错误undefined reference to test是链接器而不是编译器的错误。它与包含头文件无关。这意味着当您链接可执行文件时,您不包括parser.o

答案 1 :(得分:1)

您的源文件位于何处?尝试将源文件名添加到PROJECT_SOURCEFILES预处理器变量(即PROJECT_SOURCEFILES+=parser.c),并将源文件的位置添加到CONTIKIDIRS预处理器变量(即CONTIKIDIRS+={Directory})。

如果parser.c依赖于很多其他C文件,您可能需要先创建C库存档,然后通过将库的名称添加到TARGET_LIBFILES变量中来将库添加到项目中。