0

g++ を使用して C++ プログラムを実行しようとしましたが、次の例外が発生します: 「ocl::CRException の typeinfo」は、CRException クラスを含む ocl 名前空間を使用しています。

OCLクラスを含むコードは次のとおりです。

#ifndef VOIDSOFT_ADA2_LIND_HH

#define VOIDSOFT_ADA2_LIND_HH
#include <string>
#include <list>
#include <queue>
#include <map>
#include <ocl.h>
#include "threaded.hh"

using namespace std;
using namespace ocl;

class circuit;

class Lind: public Threaded 
{
public:
    typedef int lookup_t;

private:
    OraConnection connection;
    pthread_mutex_t *done_m;
    queue<pthread_t> *q;
    lookup_t type;

public:
    circuit *c;
    Lind();
    ~Lind();

    void *run();    

    map<string, pair<string, string> > *getnodes(string);

    bool connect();
    void disconnect();

private:
    circuit *getcircuitinfo(string, circuit *c = 0);               
    void bindInStr(OraQuery &q, string arg, string bindvar, map<string, string> *properties);

    map<string, pair<string, string> > *node2name(string);
};

/* Lookup types */
namespace LindLookupTypes {
    /* Get overlying */
    const int OL = 0x001;
    /* Get underlying */
    const int UL = 0x002;
}
#endif /* VOIDSOFT_ADA2_LIND_HH */
4

1 に答える 1

0

これは通常、どこかで仮想メソッドを定義 (実装) するのを忘れたことを意味します。のすべての仮想メソッドocl::CRExceptionが定義されていること、およびそれらが定義されているオブジェクト ファイルが実際にコードにリンクされていることを確認してください。

問題が解決しない場合は、回答を編集して のコードを表示してくださいCRException

于 2013-03-26T15:10:53.280 に答える