Я пытался запустить свою программу на C ++ с использованием g ++, но получаю следующее исключение:
«typeinfo для ocl :: CRException» Я использую пространство имен 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 */
Обычно это означает, что вы забыли определить (реализовать) виртуальный метод где-то. Проверьте, что все виртуальные методы ocl::CRException
определены, и что объектный файл, в котором они определены, на самом деле связан с вашим кодом.
Если это не поможет, отредактируйте ответ и покажите нам код для CRException
,
Других решений пока нет …