2012-04-02 167 views
0

我開始一個項目,並開始構建它的一些結構。我將每個傳感器的頭文件和C++源文件放在名爲「Sensors」的文件夾下的Arduino傳感器庫下。由於它剛剛創建,所以它抱怨的文件相當小而且沒有趣味。Arduino上的頭文件奇怪的編譯器錯誤

錯誤:

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(); 
}; 

它抱怨multiple types in one declaration。但該文件似乎很好。有什麼我失蹤?我忽略了什麼?

回答

5

您可能在某處丟失了一個分號 - 可能是某個類或結構聲明的大括號丟失了。

class Compass的末尾是否真的有分號?在你的問題中有一個;我只是想確定它確實存在於文件中(有一些令人驚訝的SO問題,它們手動輸入代碼而不是使用剪貼板複製)。

如果那裏有一個分號,請檢查在Compass.h之前包含的任何標題在該文件中的最後一個聲明之後是否需要分號(如果需要)。

+0

如果它抱怨'Compass'的末尾,它會是之前缺少分號的類 - 可能是Aircraft.h – je4d 2012-04-02 23:55:46

+0

Compass末尾有一個分號。然而,正如@ je4d所提到的,在另一個文件中沒有提到分號。剛剛打開了幾個其他文件,發現Gyro.h在其類定義的末尾有一個缺失的分號。謝謝! – jakebird451 2012-04-03 00:00:19