Я пытаюсь загрузить C++ DLL в свое приложение C. Я скомпилировал файл .so успешно и имею функцию, определенную как getkobj.сообщение об ошибке при загрузке функции из общей библиотеки
При попытке загрузить его, я получаю сообщение об ошибке:
/home/Models/Code/makeKDBObj.so: undefined symbol: _ZN10makeKDBObjC1Ev
У меня есть заголовочный файл:
#include "k.h"
class makeKDBObj
{
public:
makeKDBObj();
virtual KK getkobj(KK FileName);
};
и исходный файл:
#include "makeKDBObj.hpp"
extern "C" makeKDBObj* create_object()
{
return new makeKDBObj;
}
extern "C" void destroy_object(makeKDBObj* object)
{
delete object;
}
extern "C" makeKDBObj* getkobj()
{
return new makeKDBObj;
}
K getkobj (K FileName)
{
// ...
}
я могу найти символ в файле с nm -gC makeKDBObj.so | grep getkobj
:
00000000000047a0 T getkobj(k0*)
Можете ли вы увидеть что-нибудь, что я могу сделать неправильно?
Может быть, вы не определили конструктор makeKDBObj? – Xaqq