• RTSP/GB28181/HIKSDK/Ehome协议视频融合平台EasyCVR编译C++报参见“XXX”的声明错误


    视频上云服务平台EasyCVR开发过程中,TSINGSEE青犀视频研发团队遇到了不少难题,比如调用动态库报“0xC0000005错误、设备拉流不稳定等问题,目前都已经得到完美解决。

    在开发EasyCVR的部分功能过程中,需要编写 C++ 代码,生成动态库后,由 Go 语言调用。在编译 C++项目时,出现以下错误:
    1>D:Projectcppeasyfaceincludeface_file_util.h(94): error C4996: ‘fopen’: This function or variable may be unsafe. Consider using fopen_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
    1> C:Program Files (x86)Windows Kits10Include10.0.10240.0ucrtstdio.h(205): note: 参见“fopen”的声明

    经过分析后,我们排查到主要是 fopen 函数已经被 fopen_s 取代了,所以出现了这种错误。fopen_s 相对于 fopen 函数更安全,在内部添加了溢出检测。

    为此我们提出了以下两种解决方案:

    方案一

    1、右击工程,点击属性;
    2、在配置属性-C/C+±预处理器中的预处理器定义中添加对应的宏信息,即可忽略这个错误。

    _CRT_NONSTDC_NO_DEPRECATE
    
    _CRT_SECURE_NO_WARNINGS
    

      

    方案二

    直接使用 fopen_s 函数代替 fopen 函数。

    但是 fopen_s 的函数和 fopen 的用法并不相同,所以需要根据实际工作量进行修改。

    综合考虑以上两种方案,我们决定采用第一种方案解决。

  • 相关阅读:
    Retrofit源码分析
    Android异步消息机制
    崩溃bug日志总结3
    单例模式
    总结(第一段)
    mysql日期类型比较
    mysql记录(一)
    JSONObject/JSONArray的区别
    java 正则表达式(Pattern ,Matcher)的使用
    javaweb开发中的权限管理的方法
  • 原文地址:https://www.cnblogs.com/EasyNVR/p/13791579.html
Copyright © 2020-2023  润新知