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

标签 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

当我尝试构建它时发生错误:

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/

相关文章:

makefile - 如何为同一目标文件的不同依赖项集运行不同的配方

运行 make CentOS 时出现 OpenCV 错误

c - 通过具有 Contiki-OS 的 mote 从终端接收数据

c++ - 以编程方式创建 header 项 'hot' 或 'selected'

c - 如何在c中使用int变量创建一个字符串变量

C预处理器: expand macro in a #warning

c - 如何从随机数生成器返回中间位?

c - 使用 minGW gcc 未定义对 _imp____glew* 函数的引用

c++ - 链接器错误 : "linker input file unused because linking not done", 未定义对该文件中函数的引用

Contiki时钟时间模块不更新