c++ - Arduino 上带有头文件的奇怪编译器错误

标签 c++ arduino

我开始一个项目并开始构建它的一些结构。我在名为“Sensors”的文件夹中的 Arduino 传感器库下为每个传感器建立一个头文件和 c++ 源文件。它提示的文件相当小且无趣,因为它刚刚创建。

错误:

In file included from /Applications/Arduino.app/Contents/Resources/Java/libraries/PID/../Sensors/Sensors.h:6,
             from Aircraft.h:5,
             from Aircraft.cpp:1:
/Applications/Arduino.app/Contents/Resources/Java/libraries/PID/../Sensors/Compass.h:14: error: multiple types in one declaration

Compass.h

#pragma once

class Compass
{
private:
    double x,y,z;

public:
    void refresh();

    double getX();
    double getY();
    double getZ();
};

它提示一个声明中有多个类型。但文件似乎没问题。有什么我想念的吗?我忽略了什么?

最佳答案

您可能在某处遗漏了分号 - 可能在类或结构声明的右括号处遗漏了分号。

class Compass 的末尾真的有分号吗?您的问题中有一个;我只是想确保它确实存在于文件中(有数量惊人的 SO 问题是手动输入代码而不是使用剪贴板复制代码)。

如果那里有一个分号,请检查在 Compass.h 之前包含的任何 header 是否在该文件中的最后一个声明之后需要一个分号(如果需要)。

关于c++ - Arduino 上带有头文件的奇怪编译器错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9985300/

相关文章:

c++ - 在编码中分配 Helm 机很困难

c++ - 从(成员)函数推导出类型

c++ - c++ 重写虚函数时出现 undefined reference 错误

c++ - 警告 : missing terminating "character

c++ - 函数调用是否需要表达式?

datetime - 从仅日期开始计算夏令时

c++ - 有没有办法在 void 函数中结束程序?

c++ - 在 C++11 之前的 C++ 中实现 Double Check Lock Pattern 安全吗

在 C 中将字节数组转换为 int 数组

c++ - 编程 Arduino 与标准 C 有何不同?