2011-05-27 80 views
1

當試圖從AppenderSkeleton繼承時,我在嘗試編譯時在'{'token'之前得到「錯誤:期望的類名。我似乎沒有認識到這個類,但我引用了log4cxx庫幷包含了appenderskeleton.h文件。需要幫助在Ubuntu中使用Eclipse創建log4cxx appender

.h文件低於:

#include <log4cxx/appenderskeleton.h> 

//#include <vector> 
#ifndef SERVICEAPPENDER_H_ 
#define SERVICEAPPENDER_H_ 

class ServiceAppender : public AppenderSkeleton { 
{ 
public: 
    ServiceAppender(); 
    virtual ~ServiceAppender(); 
}; 

#endif 

有一個ServiceAppender.cpp文件,但目前沒有任何關係,但一個參考上面的文件。我使用的是make文件有以下幾點:

CC=g++ 
CFLAGS=-c 
EXECUTABLE=testservice 
CPPFLAGS= -I/usr/local/lib -I/usr/include/libxml++-2.6 \ 
-I/usr/lib/libxml++-2.6/include -I/usr/include/libxml2 \ 
-I/usr/include/glibmm-2.4 -I/usr/lib/glibmm-2.4/include \ 
-I/usr/include/sigc++-2.0 -I/usr/lib/sigc++-2.0/include \ 
-I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include 
LIBS= -lxml++-2.6 -lxml2 -lglibmm-2.4 -lgobject-2.0 -lsigc-2.0 -lgthread-2.0 \ 
-lrt -lglib-2.0 -lboost_thread -llog4cxx -lcurlpp -lpthread -lapr-1 

看來我可能會丟失庫/參考,但作爲C++小白,我不知道,可能是。

+2

AppenderSkeleton在任何機會的命名空間?在這種情況下,您必須限定班級名稱。 – 2011-05-27 20:56:32

+0

就是這樣,謝謝! – grant 2011-05-27 21:17:19

+1

@Timo將該評論轉換爲答案。 – 2011-05-28 02:16:08

回答

1

是AppenderSkeleton在任何機會的命名空間?在這種情況下,您必須限定編譯器的類名稱才能正確解析該符號。