for isssue
Qt Code:
  1. va.cpp: In member function 'virtual void vA1::initGui()':
  2.  
  3. va.cpp:98: error: no matching function for call to 'QAction::QAction(QIcon, const char [4], vA1* const)'
  4.  
  5. /usr/local/Trolltech/Qt-4.1.2//include/QtGui/qaction.h:173: note: candidates are: QAction::QAction(const QAction&)
  6.  
  7. ...
To copy to clipboard, switch view to plain text mode 
i found that i hadn't included QObject class which i did so up mentioned error went away.

About second issue of
Qt Code:
  1. usr/local/Trolltech/Qt-4.1.2//include/QtGui/qmenubar.h:29: error: expected initializer before 'QtGuiModule'
To copy to clipboard, switch view to plain text mode 

i changed my header file as
Qt Code:
  1. #ifndef vA_H
  2. #define vA_H
  3.  
  4. //QT4 includes
  5. #include <QObject>
  6.  
  7. //QGIS includes
  8. #include <qgisapp.h>
  9. #include <qgsmaptool.h>
  10. #include <qgsmapcanvas.h>
  11. #include<qgspoint.h>
  12. #include "../qgisplugin.h"
  13.  
  14. #include "vARubberBand.h"
  15. ;
  16. //forward declarations
  17.  
  18. class QToolBar;// LINE NO 54
  19.  
  20. /**
  21. * \class Plugin
  22. * \brief [name] plugin for QGIS
  23. * [description]
  24. */
  25. class vA1:public QObject, public QgsMapTool , public QgisPlugin
  26. {
  27. Q_OBJECT;
  28. public:
To copy to clipboard, switch view to plain text mode 

i think you will be noticing the semicolon after line
Qt Code:
  1. #include "vARubberBand.h"
To copy to clipboard, switch view to plain text mode 
, this is what i did a sort of hit and trial to compile it. It did. If i didn't put this semicolon it give the message
Qt Code:
  1. va.cpp line 54: multiple types in one declaration
To copy to clipboard, switch view to plain text mode 
i donot have reasoning for such behaviour. Kindly anyone put some light on this issue. All comments, suggestion and other solutions are welcome

reagrds
quickNitin