2013-03-26 58 views
0

我試着使用G ++,但我得到以下異常運行我的C++程序: 「所屬類別的OCL :: CRException」正在使用含CRException類..請幫我在這OCL命名空間。所屬類別的OCL :: CRException

這是我在哪裏,包括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 */ 

回答

0

這通常意味着你忘了某處定義(實現)虛擬方法。檢查是否定義了所有虛擬方法ocl::CRException,並且定義它們的目標文件實際上鍊接到您的代碼。

如果沒有幫助,編輯的答案,展示我們CRException的代碼。

+0

這可能是因爲版本的問題?我在GCC 2.3中編寫了代碼,並在GCC 3.4中編譯了相同的代碼。我清除了很多錯誤。現在該程序正在編譯,但獲得'ocl :: CRException' ..我需要改變任何東西,因爲版本的變化? – viswa 2013-03-27 05:10:42

+0

@viswa:這很難猜出,但肯定是可以的。如果你可以發佈一些代碼,最好是[SSCCE](http://sscce.org/),我們可能會幫助你。只需編輯答案,然後*,回覆此評論,以便通知我有一些代碼需要查看。 – 2013-03-27 06:43:12

+0

我說我在哪裏,包括OCL namespace.This代碼在GCC 2.x的第一次編譯,現在正在編制中相同的4.6代碼。這顯示許多編譯時錯誤我固定所有小的變化,現在它顯示「未定義的符號:_ZTIN3ocl11CRExceptionE」那些是OCL :: CRExpection – viswa 2013-03-27 07:06:39