包括声明不起作用

时间:2014-05-18 18:21:55

标签: c++ arduino

我正在为Arduino创建自己的库,我有以下代码:

#include <Arduino.h>
#include <Servo.h>

class ServoMotorController {
    public:
        ServoMotorController(int servoPin, int motorPin, int angle);
        void setAngle(int angle);
        void setSpeed(int speed);
    private:
        Servo servo;

        int servoPin;
        int servoAngle;
        int motorPin;
        int motorSpeed;
};

我收到Servo未命名类型的错误;但如果我这样做

#include <Servo.h>
#include <ServoMotorController.h>

在我的实际Arduino代码中然后我没有得到错误。 为什么include语句在我的C ++库中不起作用?

以下是更多信息:

文件层次结构:

Arduino
     libraries
          MyServo
               ServoMotorController .h
               ServoMotorController .cpp
          Servo
               SoftwareServo.h
               SoftwareServo.cpp
     Servo_Program
          Servo_Program.ino

ServoMotorController.h是上面显示的文件。

当我使用arduino IDE来包含伺服库时,它会

#include <Servo.h>
#include <ServoMotorController.h>

并且没有问题,但是如果我不在arduino文件中包含并且只包含在.h和.cpp文件中,则表示Servo没有命名类型。

2 个答案:

答案 0 :(得分:0)

评论框太长了......

您是否对包含文件使用防护?

#ifndef SERVO_H
#define SERVO_H
 . . . . . 
#endif



#ifndef SERVOMOTORCONTROLLER_H
#define SERVOMOTORCONTROLLER_H
 . . . . . 
#endif

答案 1 :(得分:0)

不知道这有帮助,但要包含您创建的标题文件,您可能希望使用引号而不是尖括号&#34;

#include&#34; ServoMotorController.h&#34;