我的文件结构如下:
interface.h --> interface.c
|
|
effects.h --> effects.c
|
|
main
但是,在main.h中无法访问effect.h中声明的函数。
代码段:
主要:
#include "interface.h"
#include "effects.h"
void setup() //Initialize all variables here
{
....
turnoff();
};
effects.h:
#ifndef EFFECTS
#define EFFECTS
void turnoff();
#endif
effects.c:
#include "interface.h"
#include "effects.h"
void turnoff()
{
....
};
interface.h:
#ifndef INTERFACE
#define INTERFACE
....
#endif
错误讯息:In function ``loop':undefined reference to ``turnoff()'
由于循环功能为空,错误信息没有意义!
答案 0 :(得分:1)
您需要将所有3个.c文件编译并链接在一起。使用gcc
就像
gcc main.c interface.c effects.c -o executable_name
答案 1 :(得分:1)
我认为IDE需要* .cpp文件而不是* .c文件。
无论如何,您应该更改file->偏好设置下的设置以获得详细的编译器输出。通常这会给出一些提示。至少它会显示包含 实际 编译的文件的临时目录。这反过来可以更准确地分析问题。
答案 2 :(得分:0)
从最新的回复中,我觉得effects.c
不是编译的一部分。我不了解开发环境,但从现有数据来看,这是我的观察结果。
答案 3 :(得分:0)
您使用的是哪些标志? 也许你需要明确地将你的函数声明为extern?
extern void turnoff();