当我尝试从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,我不知道那可能是什么。
答案 0 :(得分:1)
AppenderSkeleton是否有机会出现在命名空间中?在这种情况下,您必须限定编译器的类名才能正确解析符号。