Общая библиотека не устанавливает функцию обратного вызова в HCNET_SDK, в методе NET_DVR_RealPlay_V40 получает код ошибки 157 Не удалось загрузить ssleay32.dll
Я делаю общую библиотеку.so C++, где я использую HCNE_SDK v.6.0.2.2 для вызова как GetStream() из Python, когда я делаю компиляцию файла.so, импортировать в Python и запустить
int iRealPlayHandle = NET_DVR_RealPlay_V40(iUserID, &struPreviewInfo, g_RealDataCallBack_V30, NULL);
Я получаю код ошибки 157 "NET_DVR_LOAD_SSLEAY32_DLL_ERROR" Failed to load ssleay32.dll.
С другой стороны, когда я делаю ту же процедуру, но добавляю метод main в файл и удаляю флаг -shared, я получаю исполняемый файл, который хорошо выполняет свою работу. В чем проблема, похоже, что совместно используемая библиотека не устанавливает функцию обратного вызова и имеет некоторые ошибки при импорте некоторых модулей
IPython = /usr/include/python3.5
CC = gcc
CXX = g++
CFLAGS = -g
CXXFLAGS = $(CFLAGS)
LIBPATH = ./
PyFLAGS=-lboost_python -lpython3.5m -lpthread
BoostFlag=-I$(IPython) -MMD -MP -MF $@.d -fPIC
LIBS= -Wl,-rpath=./:./HCNetSDKCom -lhcnetsdk
OBJ = HikvisionDriver.o
s: libHikvision.so
x: libHikvision
libHikvision: $(OBJ)
$(CXX) $(CXXFLAGS) -o libHikvision $(OBJ) -L$(LIBPATH) $(LIBS) $(PyFLAGS)
libHikvision.so: $(OBJ)
$(CXX) $(CXXFLAGS) -shared -o libHikvision.so $(OBJ) -L$(LIBPATH) $(LIBS) $(PyFLAGS)
HikvisionDriver.o: HikvisionDriver.cpp
$(CXX) $(OPTI) $(CXXFLAGS) $(BoostFlag) -Wall -L$(LIBPATH) $(LIBS) -c -o $@ $<