2013-03-26 5 views
0

나는 다음과 같은 예외가 g을 사용하여 ++하지만 무엇입니까 ++ 프로그램을 내 C를 실행하려고 : CRException 클래스 ..이 날 도와주세요 포함 OCL 네임 스페이스를 사용하고 "OCL :: CRException에 대한 소속 카테고리" .는 소속 카테고리 OCL을 위해 :: CRException

#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 클래스를 포함하여 오전 코드입니다. ocl::CRException의 모든 가상 메소드가 정의되어 있고 정의 된 오브젝트 파일이 실제로 코드에 링크되어 있는지 점검하십시오.

도움이되지 않는 경우 대답을 수정하고 CRException 코드를 표시하십시오.

+0

버전 문제로 인한 문제입니까? 나는 GCC 2.3에서 코드를 작성하고 GCC 3.4에서도 같은 코드를 컴파일했다. 나는 많은 오류를 해결했다. 이제 프로그램은 제대로 컴파일되지만'ocl :: CRException'을 얻고 있습니다. 버전 변경 때문에 어떤 것을 바꿀 필요가 있습니까 ?? – viswa

+0

@viswa : 추측하기는 어렵지만 확실히 가능합니다. 귀하가 [SSCCE] (http://sscce.org/)와 같은 코드를 게시 할 수 있다면 귀하를 도울 수 있습니다. 보고 싶은 코드가 있음을 알리기 위해 답과 *를 편집 한 후이 댓글에 답장하십시오. –

+0

ocl 네임 스페이스를 포함하는 코드를 추가했습니다.이 코드는 gcc 2.x에서 처음 컴파일되었으며 현재 4.6에서 같은 코드를 컴파일 중입니다. 그것은 많은 컴파일 시간 오류를 보여주었습니다. 작은 변경 사항을 모두 수정했고 이제는 "undefined symbol : _ZTIN3ocl11CRExceptionE"이 ocl :: CRExpection – viswa