我正在使用Contiki操作系统编写程序。
我有remote_firmware.c
文件和一个名为parser的文件夹,其中包含文件parser.h
和parser.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
,但我不知道怎么做。我试过这里提出的几个解决方案,但我想我做错了。也许有人知道该怎么做?
非常感谢你。
答案 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
变量中来将库添加到项目中。