dingshidong 发表于 2016-4-29 14:09:43

Arduino编写库函数Library出错,求解?

ino文件编译没问题,下载到板子上也是正常的,本想建立一个库函数,方便以后调用,分成.cpp和.h编译出错,检查了很多遍,网上和自建库函数有关的帖子也都看过,Arduino.cc的教程也反复看了几遍,有关书籍也看了,还是不能解决。
下面是IDE 1.6.8 报错的信息:

Arduino:1.6.8 (Windows 7), 开发板:"Arduino Nano, ATmega328"

In file included from D:\arduino-1.6.8-windows\arduino-1.6.8\hardware\arduino\avr\cores\arduino/Print.h:27:0,

               from D:\arduino-1.6.8-windows\arduino-1.6.8\hardware\arduino\avr\cores\arduino/Stream.h:26,

               from D:\arduino-1.6.8-windows\arduino-1.6.8\hardware\arduino\avr\libraries\Wire\src/Wire.h:26,

               from D:\arduino-1.6.8-windows\arduino-1.6.8\libraries\CCS811\CCS811.c:3:

D:\arduino-1.6.8-windows\arduino-1.6.8\hardware\arduino\avr\cores\arduino/Printable.h:25:1: error: unknown type name 'class'

class Print;

^

D:\arduino-1.6.8-windows\arduino-1.6.8\hardware\arduino\avr\cores\arduino/Printable.h:33:1: error: unknown type name 'class'

class Printable

^

D:\arduino-1.6.8-windows\arduino-1.6.8\hardware\arduino\avr\cores\arduino/Printable.h:34:1: error: expected '=', ',', ';', 'asm' or '__attribute__' before '{' token

{

^

In file included from D:\arduino-1.6.8-windows\arduino-1.6.8\hardware\arduino\avr\cores\arduino/Stream.h:26:0,

               from D:\arduino-1.6.8-windows\arduino-1.6.8\hardware\arduino\avr\libraries\Wire\src/Wire.h:26,

               from D:\arduino-1.6.8-windows\arduino-1.6.8\libraries\CCS811\CCS811.c:3:

D:\arduino-1.6.8-windows\arduino-1.6.8\hardware\arduino\avr\cores\arduino/Print.h:34:1: error: unknown type name 'class'

class Print

^

D:\arduino-1.6.8-windows\arduino-1.6.8\hardware\arduino\avr\cores\arduino/Print.h:35:1: error: expected '=', ',', ';', 'asm' or '__attribute__' before '{' token

{

^

In file included from D:\arduino-1.6.8-windows\arduino-1.6.8\hardware\arduino\avr\libraries\Wire\src/Wire.h:26:0,

               from D:\arduino-1.6.8-windows\arduino-1.6.8\libraries\CCS811\CCS811.c:3:

D:\arduino-1.6.8-windows\arduino-1.6.8\hardware\arduino\avr\cores\arduino/Stream.h:49:1: error: unknown type name 'class'

class Stream : public Print

^

D:\arduino-1.6.8-windows\arduino-1.6.8\hardware\arduino\avr\cores\arduino/Stream.h:49:14: error: expected '=', ',', ';', 'asm' or '__attribute__' before ':' token

class Stream : public Print

            ^

In file included from D:\arduino-1.6.8-windows\arduino-1.6.8\libraries\CCS811\CCS811.c:3:0:

D:\arduino-1.6.8-windows\arduino-1.6.8\hardware\arduino\avr\libraries\Wire\src/Wire.h:33:1: error: unknown type name 'class'

class TwoWire : public Stream

^

D:\arduino-1.6.8-windows\arduino-1.6.8\hardware\arduino\avr\libraries\Wire\src/Wire.h:33:15: error: expected '=', ',', ';', 'asm' or '__attribute__' before ':' token

class TwoWire : public Stream

               ^

D:\arduino-1.6.8-windows\arduino-1.6.8\hardware\arduino\avr\libraries\Wire\src/Wire.h:82:1: error: unknown type name 'TwoWire'

extern TwoWire Wire;

^

In file included from D:\arduino-1.6.8-windows\arduino-1.6.8\libraries\CCS811\CCS811.c:4:0:

D:\arduino-1.6.8-windows\arduino-1.6.8\libraries\CCS811/CCS811.h:41:1: error: unknown type name 'class'

class CCS811

^

D:\arduino-1.6.8-windows\arduino-1.6.8\libraries\CCS811/CCS811.h:42:1: error: expected '=', ',', ';', 'asm' or '__attribute__' before '{' token

{

^

D:\arduino-1.6.8-windows\arduino-1.6.8\libraries\CCS811\CCS811.c:7:7: error: expected '=', ',', ';', 'asm' or '__attribute__' before ':' token

CCS811::CCS811()

       ^

D:\arduino-1.6.8-windows\arduino-1.6.8\libraries\CCS811\CCS811.c:14:13: error: expected '=', ',', ';', 'asm' or '__attribute__' before ':' token

voidCCS811::begin() {

             ^

D:\arduino-1.6.8-windows\arduino-1.6.8\libraries\CCS811\CCS811.c:19:13: error: expected '=', ',', ';', 'asm' or '__attribute__' before ':' token

boolCCS811::_HardWare_ID(){

             ^

D:\arduino-1.6.8-windows\arduino-1.6.8\libraries\CCS811\CCS811.c:39:13: error: expected '=', ',', ';', 'asm' or '__attribute__' before ':' token

boolCCS811::_Valid_Firmware(){

             ^

D:\arduino-1.6.8-windows\arduino-1.6.8\libraries\CCS811\CCS811.c:62:14: error: expected '=', ',', ';', 'asm' or '__attribute__' before ':' token

void   CCS811::_Boot_to_Firmware_Mode(){

            ^

D:\arduino-1.6.8-windows\arduino-1.6.8\libraries\CCS811\CCS811.c:70:13: error: expected '=', ',', ';', 'asm' or '__attribute__' before ':' token

voidCCS811::_Measure_Mode(){

             ^

D:\arduino-1.6.8-windows\arduino-1.6.8\libraries\CCS811\CCS811.c:83:21: error: expected '=', ',', ';', 'asm' or '__attribute__' before ':' token

unsigned intCCS811::Read_Value(CCS811MeasureType type){

                     ^

D:\arduino-1.6.8-windows\arduino-1.6.8\libraries\CCS811\CCS811.c:137:13: error: expected '=', ',', ';', 'asm' or '__attribute__' before ':' token

voidCCS811::init_CCS811(){

             ^

exit status 1
Error compiling for board Arduino Nano.

在文件 -> 首选项开启
“编译过程中显示详细输出”选项
这份报告会包含更多信息。
页: [1]
查看完整版本: Arduino编写库函数Library出错,求解?