我從mbed C++編譯器收到錯誤消息,似乎是指示包括警衛在內的故障。C++包括警衛似乎沒有工作
在main.cpp中,我包括我的頭文件如下:
#include "mbed.h"
#include "sample.h"
這是我sample.h:
#include "mbed.h"
#ifndef STUFF_H
#define STUFF_H
/* LEDs */
DigitalOut led1(LED1);
DigitalOut led2(LED2);
DigitalOut led3(LED3);
DigitalOut led4(LED4);
/* Subroutines */
void sweepLEDs();
void pulseLEDs(int numPulses);
void clearLEDs();
#endif
在sample.cpp的,我包括sample.h爲如下:
#include "sample.h"
在這兩個的main.cpp和sample.cpp的,我指的是變量led1, led2, led3, led4
沒有decla響它們。但是,編譯器正在輸出這些投訴:
「符號led1多次定義(由sample.cpp.cpp.LPC1768.o和main.cpp.cpp.LPC1768.o)」。 ... 「符號led4乘法定義(由sample.cpp.cpp.LPC1768.o和main.cpp.cpp.LPC1768.o)」。
我的包括警衛書寫不當嗎?還是有其他問題?
(僅供參考,這裏是link to the mbed.h source)