Qt 解决_CRT_SECURE_NO_WARNINGS及_SCL_SECURE_NO_WARNINGS的问题

12 篇文章 6 订阅
12 篇文章 2 订阅


简述:关于 VS20XX 中出现 _CRT_SECURE_NO_WARNINGS 及 _SCL_SECURE_NO_WARNINGS 的安全警告处理。


1、简单介绍.pro跨平台(Win32/Linux)的写法


win32 {
    #remove safe warning
    win32:DEFINES += _CRT_SECURE_NO_WARNINGS _SCL_SECURE_NO_WARNINGS
    LIBS += -lGLU32 -lpthreadVC2
    #Forbid C4819 and C4244 Warning
    QMAKE_CXXFLAGS += /wd"4819"\
                    /wd"4244"
}
 
 
unix {
    LIBS += -lGLU
}

即写法如下:

win32 {
    #设置WIndows下的连接库,以及Visual C++20XX编译器的的设置选项
}
 
 
unix {
    #原理和win32一样
}


2、 Qt 的解决方法


在win32中,win32:DEFINES+=_CRT_SECURE_NO_WARNINGS,主要就是添加_CRT_SECURE_NO_WARNINGS定义,避免VC编译器关于fopen等应使用fopen_s的安全警告,win32:DEFINES+=_SCL_SECURE_NO_WARNINGS同理QMAKE_CXXFLAGS+=/wd"4819"的作用就是屏蔽C4819警告,需要注意的是,在.pro文件中定义的均为全局配置。


3、VS20XX的解决方法


问题:1>c:\program files (x86)\microsoft visual studio11.0\vc\include\xutility(2176): error C4996: 'std::_Copy_impl': Function callwith parameters that may be unsafe - this call relies on the caller to checkthat the passed values are correct. To disable this warning,use-D_SCL_SECURE_NO_WARNINGS. See documentation on how to use Visual C++ 'CheckedIterators'


问题:Error 1 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.


解决方法:

加入预处理器(项目属性----C/C++----预处理----预处理器定义):

_CRT_SECURE_NO_WARNINGS

_SCL_SECURE_NO_WARNINGS





  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值