当我将 .obj 文件转换为 openGL 时,我遇到了一些错误。我不确定如何修复错误。我已将符号更改为>,但错误仍然存在。
1>------ Build started: Project: LoadObj Trial, Configuration: Release Win32 ------
1> LoadObj Trial.cpp
1>LoadObj Trial.cpp(78): warning C4018: '<' : signed/unsigned mismatch
1>LoadObj Trial.cpp(90): error C4996: 'sscanf': This function or variable may be unsafe. Consider using sscanf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
1> D:\VISUAL STUDIO\VC\include\stdio.h(311) : see declaration of 'sscanf'
1>LoadObj Trial.cpp(109): warning C4018: '<' : signed/unsigned mismatch
1>LoadObj Trial.cpp(134): warning C4018: '<' : signed/unsigned mismatch
1>LoadObj Trial.cpp(136): warning C4018: '<' : signed/unsigned mismatch
1>LoadObj Trial.cpp(138): warning C4018: '<' : signed/unsigned mismatch
1>LoadObj Trial.cpp(140): warning C4018: '<' : signed/unsigned mismatch
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========
最佳答案
LoadObj Trial.cpp(90): error C4996: 'sscanf': This function or variable may be unsafe. Consider using sscanf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
1> D:\VISUAL STUDIO\VC\include\stdio.h(311) : see declaration of 'sscanf'
这并不是真正的错误,它与 OpenGL 无关。那是 MSVC 编译器处理 a level 3 security/deprecation warning作为编译器错误。您的项目可能配置为将 3/4 级警告视为错误。
要解决“错误”,您可以使用它建议的变体(这会使您的代码相当不可移植),或者简单地添加 #define _CRT_SECURE_NO_WARNINGS
或将该定义添加到您的预定义项目设置中的处理器定义。
但是,其他警告 无法在不查看您的代码的情况下进行诊断。并且可以很安全地假设简单地切换比较的方向不会做任何有用的事情,这可能会破坏事情并且不会解决比较有符号和无符号值的问题。
关于制作预处理器定义,我提到了项目范围的设置,请参见以下屏幕截图(Visual Studio 2013 Pro):
关于c++ - 将 .obj 转换为 openGL 时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23200572/