我正在使用 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
当我尝试构建它时发生错误:
undefined reference to 'test'
我知道 Makefile 需要了解 parser.h
,但我不知道如何做。我尝试了这里提出的几种解决方案,但我想我做错了什么。也许你们中有人知道该怎么做?
非常感谢。
最佳答案
您的源文件位于何处?尝试将源文件名添加到 PROJECT_SOURCEFILES
预处理器变量(即 PROJECT_SOURCEFILES+=parser.c
)并将源文件的位置添加到 CONTIKIDIRS
预处理器变量(即 CONTIKIDIRS+={Directory}
)。
如果 parser.c 依赖于许多其他 C 文件,您可能需要先创建一个 C 库存档,然后通过将库名称添加到 TARGET_LIBFILES
变量来将库添加到您的项目中。
关于Contiki:未定义对单独源文件中定义的函数的引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48216351/