Linux环境下关于海康威视libcrypto.so文件加载失败

问题描述:公司有次停电导致服务器重启,该问题就出现了。服务器上的问题我也没解决,但我是用指定文件路径方式解决的。在这里插入图片描述解决方案

第一步:
请添加图片描述

public static class BYTE_ARRAY extends Structure
	{
		public byte[] byValue;

		public BYTE_ARRAY(int iLen) {
			byValue = new byte[iLen];
		}

		@Override
		protected List<String> getFieldOrder() {
			// TODO Auto-generated method stub
			return Arrays.asList("byValue");
		}
	}

第二步(这段代码是写在初始化摄像头代码中的)
请添加图片描述

public NativeLong initDataVideo() {
        String strPathCom = "/home/czc/java/lib";
        String strPathCrypto = "/home/czc/java/lib/libcrypto.so";
        String strPathSsl = "/home/czc/java/lib/libssl.so";

        HCNetSDK.NET_DVR_LOCAL_SDK_PATH struComPath = new HCNetSDK.NET_DVR_LOCAL_SDK_PATH();
        System.arraycopy(strPathCom.getBytes(), 0, struComPath.sPath, 0, strPathCom.length());
        struComPath.write();
        boolean loginFlag = hCNetSDK.NET_DVR_Init();
        System.out.print("initSDK is " + loginFlag + "\n");
        System.out.print("error code :" + hCNetSDK.NET_DVR_GetLastError() + "\n");
        hCNetSDK.NET_DVR_SetSDKInitCfg(2, struComPath.getPointer());

        //设置libcrypto.so所在路径
        HCNetSDK.BYTE_ARRAY ptrByteArrayCrypto = new HCNetSDK.BYTE_ARRAY(256);
        System.arraycopy(strPathCrypto.getBytes(), 0, ptrByteArrayCrypto.byValue, 0, strPathCrypto.length());
        ptrByteArrayCrypto.write();
        hCNetSDK.NET_DVR_SetSDKInitCfg(3, ptrByteArrayCrypto.getPointer());

        //设置libssl.so所在路径
        HCNetSDK.BYTE_ARRAY ptrByteArraySsl = new HCNetSDK.BYTE_ARRAY(256);
        System.arraycopy(strPathSsl.getBytes(), 0, ptrByteArraySsl.byValue, 0, strPathSsl.length());
        ptrByteArraySsl.write();
        hCNetSDK.NET_DVR_SetSDKInitCfg(4, ptrByteArraySsl.getPointer());

        hCNetSDK.NET_DVR_SetLogToFile(true, null, false);
        lRealHandle = new NativeLong(-1);
        this.m_strClientInfo = new HCNetSDK.NET_DVR_CLIENTINFO();
        this.m_strClientInfo.lChannel = new NativeLong(1);
        this.m_strClientInfo.lLinkMode = new NativeLong(0);
        this.m_strClientInfo.hPlayWnd = null;
        return lRealHandle;
    }

那个路径是你服务器中的,别复制错了
请添加图片描述

总结:
到这你重启打包,再部署到服务器上就可以解决那个问题了。但问题起初是由服务器重启出现的,这个原因还是不知道。我也试了网上说的那些动态加载 .so文件方法,例如修改 /etc/profile啥啥的,都不好使。如果有人知道,可以评论告诉我,谢谢。 我也只是记录开发中遇到的问题,希望能帮到你!
大家也可以从这个网址访问海康威视的官网 https://www.hikvision.com/cn/download_more_403.html#prettyPhoto

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
海康威视visio.vsd是文件格式,用于存储和展示海康威视的视频监控系统的网络拓扑图或者设备连线图等。海康威视是中国领先的视频监控产品和解决方案供应商,其产品广泛应用于各种场所,如学校、企业、商场等。 visio.vsd文件是使用Microsoft Visio软件创建和编辑的海康威视视频监控系统示意图。Microsoft Visio是专业的绘图软件,用于创建各种类型的图表和示意图。通过使用Visio,用户可以方便地绘制和设计复杂的网络拓扑图和设备连线图等。 使用海康威视visio.vsd文件可以实现以下功能: 1. 展示视频监控系统的网络拓扑结构和设备连接关系,包括各种传感器、监控摄像头、监控设备等的分布和连接方式。 2. 可以标识各个设备和连接线的属性,例如设备的型号、IP地址、通信协议等,帮助用户更好地了解整个系统的配置和性能。 3. 通过visio.vsd文件,用户可以进行方案设计和调整,包括调整设备位置、调整设备之间的连接方式等,以满足特定的监控需求。 4. 可以输出和分享visio.vsd文件,帮助用户和其他相关人员共同参与系统设计和部署过程,提高工作效率和准确性。 总之,海康威视visio.vsd文件是用于展示和设计海康威视视频监控系统的文件格式,通过使用Microsoft Visio软件,用户可以方便地创建和编辑visio.vsd文件,以满足不同场所和应用的监控需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值