1

当尝试从 AppenderSkeleton 继承时,我在尝试编译时收到“错误:在 '{' token 之前的预期类名”。我似乎无法识别该类,但我引用了 log4cxx 库并包含了 appenderskeleton.h 文件。

.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++ noob,我不知道那可能是什么。

4

1 回答 1

1

AppenderSkeleton 是否有机会在命名空间中?在这种情况下,您必须限定类名以便编译器能够正确解析符号。

于 2011-05-28T03:34:47.040 回答