Eclipse and SoftwareSerial.H

I am moving into the C language and I’m having a problem setting up Eclipse to run Ardunio code.

I have installed the newest Eclipse (eclipse-cpp-galileo-SR1-win32.zip)and the newest AVR plug in (de.innot.avreclipse-2.3.1.20081204PRD.zip)on win XP SP3.

I can Compile\Upload\Run the example Hello and blink programs with out a problem.

However when I try to include SoftwareSerial.h or NewSoftwareSerial.h, Eclipse give the following error message.

SoftwareSerial.h:25: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘attribute’ before ‘SoftwareSerial’.

Looking at SoftwareSerial.h Line 25, it contains: class SoftwareSerial.

I have Google searched the Arduino and AVR Freaks Forums plus the Web but I cannot find an answer to this “Class” issue. If I were further along the C learning curve I’m sure the answer would be perfectly clear, but for now I need Help.Any Ideas??
Here is the code.

The lib ACW001.h is from http://www.smileymicros.com/index.php?module=pagemaster&PAGE_user_op=view_page&PAGE_id=76&MMN_position=129:129

#include <ACW001.h>
#include <SoftwareSerial.h>

//SoftwareSerial mySerial =  SoftwareSerial(0, 3);

int main(void)
{
      init();

      setup();

      for (;;)
            loop();

      return 0;
}

void setup()
{
      init();
}

void loop()
{

}

SoftwareSerial.h code

#ifndef SoftwareSerial_h
#define SoftwareSerial_h

#include <inttypes.h>

class SoftwareSerial
{
  private:
    uint8_t _receivePin;
    uint8_t _transmitPin;
    long _baudRate;
    int _bitPeriod;
    void printNumber(unsigned long, uint8_t);
  public:
    SoftwareSerial(uint8_t, uint8_t);
    void begin(long);
    int read();
    void print(char);
    void print(const char[]);
    void print(uint8_t);
    void print(int);
    void print(unsigned int);
    void print(long);
    void print(unsigned long);
    void print(long, int);
    void println(void);
    void println(char);
    void println(const char[]);
    void println(uint8_t);
    void println(int);
    void println(long);
    void println(unsigned long);
    void println(long, int);
};

#endif

The keyword "class" is not a valid C keyword. It is a valid C++ keyword. Are you trying to use a C compiler or a C++ compiler?

Pauls: At first I was using the C compiler then switched to C+ after reading up on “Case”. I had to include the following two lines of code in any one .cpp file included in the project to get rid of the error:
"undefined reference to `__cxa_pure_virtual’.

extern "C" void __cxa_pure_virtual(void);
void __cxa_pure_virtual(void) {}

Now I can C+ compile my empty project above but as soon as i include <SoftwareSerial.h> , again I get:
SoftwareSerial.h:25: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘attribute’ before 'SoftwareSerial.

All I have gained using the C+ compiler is to double the size of of my output HEX file. I am sure there are others using Eclipse with SoftwareSerial, I just need to see how they did it. Hello out there!

I really think you need one more upgrade.

All I have gained using the C+ compiler is

Upgrade to the C++ compiler.

Pauls:
Thanks for catching that. Correction, I'm using the AVR C++ compiler and NOT the C+ compiler.