Динамически загружать lib во время выполнения не работает

Я пытаюсь загрузить * .so во время выполнения с помощью следующего кода:

handle = dlopen(Path, RTLD_LAZY);
create = (FunctionEquationInterface* (*)())dlsym(handle, "CreateClass");
destroy = (void (*)(FunctionEquationInterface*))dlsym(handle, "DestroyClass");

FunctionEquationInterface похоже:

class LocalFunctionImplementation : public FunctionEquationInterface
{
public:
virtual int CreatePolynom(vtkUnstructuredGrid *input, vtkDataArray *coefficientArray);
virtual double Evaluate(Point *point);
};

extern "C" LocalFunctionImplementation* CreateClass();
extern "C" void DestroyClass(LocalFunctionImplementation*);

Я создаю библиотеку с помощью cmake

add_library(${PROJECT_NAME} SHARED LocalFunctionImplementation.cpp)

Проблема в том, что библиотека не будет загружена. handle все еще NULL.

Я думаю, что это проблема со связыванием VTK, но я не знаю, как решить эту проблему.

0

Решение

Хорошо, это работает. мне было нужно TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${VTK_LIBRARIES}), Так что библиотека будет загружена

0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector