1

AppenderSkeleton から継承しようとすると、コンパイルしようとすると「エラー: '{' トークンの前にクラス名が必要です」というメッセージが表示されます。クラスを認識していないようですが、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 ファイルがありますが、現在、上記のファイルへの参照以外には何もありません。私は次のメイクファイルを使用しています:

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 ++初心者として、それが何であるかわかりません。

4

1 に答える 1

1

ひょっとして AppenderSkeleton は名前空間にあるのでしょうか? その場合、コンパイラがシンボルを適切に解決できるように、クラス名を修飾する必要があります。

于 2011-05-28T03:34:47.040 に答える