在编译一些Arduino C文件时,出现错误“未定义对`readArms()'的引用”

该代码可以在paste bin上找到。

但基本上发生的是:

在INO文件中,我使用:

readArms();

在“armfunctions.h”和“armfunctions.c”中声明

.h文件包含
void readArms(void);

和.c文件:
void readArms(void){
    float motor1 = 0.0;
    int motor = 0;
    motor = analogRead(READMOTOR1);
    motor1 = (float)motor;
    motor1 = (motor1 - 87.0) * (400.0/(1007.0-87.0));
    delay(1000);
}

最佳答案

今天,我已经研究了几个小时,制作并测试了各种草图,并发现(如您所知)将它们更改为.cpp是一种解决方法,但是如果要专门创建ac文件,则必须将原型(prototype)包装在其中。 header 以进行编译。关于它,有一些不错的文章,但问题的症结在于.h文件中:

#ifdef __cplusplus
extern "C" {
#endif

void readArms(void);

#ifdef __cplusplus
}
#endif

关于c - Arduino C : undefined reference to `readArms()' ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19635007/

10-09 07:23