2012-03-26 43 views
2

我有一個簡單的程序來升級到版本1後測試這些庫。程序鏈接如下圖書館。它們用於SHT21溼度傳感器。Arduino IDE中的庫1.0

當我嘗試編譯程序和庫時,出現以下錯誤。

In file included from sketch_mar26a.cpp:1: /Applications/Arduino v1.0.app/Contents/Resources/Java/libraries/Ports/Ports.h:239: error: conflicting return type specified for 'virtual void UartPlug::write(byte)' /Applications/Arduino v1.0.app/Contents/Resources/Java/hardware/arduino/cores/arduino/Print.h:48: error: overriding 'virtual size_t Print::write(uint8_t)'

違犯的部分從print.h

virtual size_t write(uint8_t) = 0; 

public: 
UartPlug (PortI2C& port, byte addr) 
    : dev (port, addr), in (0), out (0) {} 

void begin(long); 
byte available(); 
int read(); 
void flush(); 
virtual void write(byte); 

問題的行

+0

也許你可以將事情縮小到特定的違規部分並在這裏發佈?讓我們去外部查看所有代碼可能不是最有效的方法。儘管這個錯誤很可能直接指出了問題所在。 – Bart 2012-03-26 10:55:16

+0

抱歉,現在編輯 – 2012-03-26 11:28:00

回答

8

問題是,在Arduino 1.0中,打印界面更改爲從其write函數(先前沒有返回計數)返回「打印」字節數。你的函數聲明:

virtual void write(byte); 

需要更改爲:

virtual size_t write(byte); 
// or write(uint8_t) since byte is #defined as uint8_t 

和實施將需要返回寫入的字節數。