我目前正在尝试从这里构建 pthread-win32(版本 2.7.0)。我已签出该项目,并且可以NMAKE VC-static
从 VS2015 开发人员命令提示符运行和查看结果。构建时出现错误:
错误 C2011:“timespec”:“struct”类型重新定义
我认为它可以通过添加预处理器指令HAVE_STRUCT_TIMESPEC
(source)来解决。
为了显示修复程序的正确应用,我决定先让警告静音。特别是警告:
警告 C4996:“_ftime64”:此函数或变量可能不安全。考虑改用 _ftime64_s。要禁用弃用,请使用 _CRT_SECURE_NO_WARNINGS。详细信息请参见在线帮助。
这个明确告诉你定义_CRT_SECURE_NO_WARNINGS
. 根据这里的MS,我们应该在命令行上使用-D
或/D
定义预处理器指令。我可以通过执行以下操作成功地使警告静音:
set cl= /D_CRT_SECURE_NO_WARNINGS
nmake VC-static
但是当我做同样的事情来修复错误时:
set cl=/DHAVE_STRUCT_TIMESPEC /D_CRT_SECURE_NO_WARNINGS // or just
set cl=/DHAVE_STRUCT_TIMESPEC
//and
nmake VC-static
它没有解决。
在 pthread 错误修复报告和这里,我如何在我的情况下应用这个修复?