Общая библиотека не устанавливает функцию обратного вызова в HCNET_SDK, в методе NET_DVR_RealPlay_V40 получает код ошибки 157 Не удалось загрузить ssleay32.dll - PullRequest
0 голосов
/ 26 марта 2019

Я делаю общую библиотеку .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 $@ $<
...