次のコードを使用して、実行時に *.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でlibを構築します
add_library(${PROJECT_NAME} SHARED LocalFunctionImplementation.cpp)
問題は、lib がロードされないことです。はhandle
まだ NULL です。
VTKの連携に問題があると思いますが、解決方法がわかりません。