opengl在VC2010中运行遇到的问题

在vc2010中配置了opengl的glew,glut,freeglut,gltools的库和头文件,用别人调试的代码怎么也跑不通,请问该如何解决

1> 正在对“Debug\OpenTest.unsuccessfulbuild”执行 Touch 任务。
1>ClCompile:
1> 所有输出均为最新。
1>ManifestResourceCompile:
1> 所有输出均为最新。
1>MSVCRT.lib(MSVCR100.dll) : error LNK2005: fprintf 已经在 gltools.lib(GLTools.obj) 中定义
1> 正在创建库 C:\Users\Administrator\Desktop\OpenTest\Debug\OpenTest.lib 和对象 C:\Users\Administrator\Desktop\OpenTest\Debug\OpenTest.exp
1>LINK : warning LNK4098: 默认库“MSVCRTD”与其他库的使用冲突;请使用 /NODEFAULTLIB:library
1>gltools.lib(GLBatch.obj) : error LNK2019: 无法解析的外部符号 "void __cdecl operator delete(void *,unsigned int)" (??3@YAXPAXI@Z),该符号在函数 "public: virtual void * __thiscall GLBatch::`scalar deleting destructor'(unsigned int)" (??_GGLBatch@@UAEPAXI@Z) 中被引用
1>gltools.lib(GLTriangleBatch.obj) : error LNK2001: 无法解析的外部符号 "void __cdecl operator delete(void *,unsigned int)" (??3@YAXPAXI@Z)
1>gltools.lib(GLTools.obj) : error LNK2019: 无法解析的外部符号 _
_report_rangecheckfailure,该符号在函数 "bool cdecl gltLoadShaderFile(char const *,unsigned int)" (?gltLoadShaderFile@@YA_NPBDI@Z) 中被引用
1>gltools.lib(glew.obj) : error LNK2001: 无法解析的外部符号 ___report_rangecheckfailure
1>gltools.lib(GLTools.obj) : error LNK2019: 无法解析的外部符号 __imp
__acrt_iob_func,该符号在函数 "bool cdecl gltCheckErrors(unsigned int)" (?gltCheckErrors@@YA_NI@Z) 中被引用
1>gltools.lib(GLTools.obj) : error LNK2019: 无法解析的外部符号 __imp
__stdio_common_vfprintf,该符号在函数 __vfprintf_l 中被引用
1>C:\Users\Administrator\Desktop\OpenTest\Debug\OpenTest.exe : fatal error LNK1120: 4 个无法解析的外部命令
1>
1>生成失败。
1>
1>已用时间 00:00:05.07
========== 生成: 成功 0 个,失败 1 个,最新 0 个,跳过 0 个 ==========

2个回答

这个应该是库没配置好,我想是不是因为别人电脑的头文件和库路径与你电脑的不同导致的,你应该检查一下库配置方面是否存在问题。

kingsoon0131
kingsoon0131 完全是按这篇文章配置的,检查了很多遍,可还是不行。https://www.cnblogs.com/zpcdbky/p/6724772.html
大约 2 年之前 回复

请仔细看这些信息
1>MSVCRT.lib(MSVCR100.dll) : error LNK2005: fprintf 已经在 gltools.lib(GLTools.obj) 中定义
1> 正在创建库 C:\Users\Administrator\Desktop\OpenTest\Debug\OpenTest.lib 和对象 C:\Users\Administrator\Desktop\OpenTest\Debug\OpenTest.exp
1>LINK : warning LNK4098: 默认库“MSVCRTD”与其他库的使用冲突;请使用 /NODEFAULTLIB:library

原因:
glt.lib使用的是MSVCRT.lib,这不是调试库
你的工程使用的MSVCRTD,这是调试库。你的工程使用了glt.lib,然后你的工程和glt.lib依赖的运行时库不一致

解决方法:
修改你的工程配置,把运行库改成MD试试

kingsoon0131
kingsoon0131 不好意思,我第一次用这个提问,本来想采纳你的答案,结果点错了,点成另一个回答者了,真是抱歉
大约 2 年之前 回复
kingsoon0131
kingsoon0131 gltools不是自己编的,是网上下别人的
大约 2 年之前 回复
xxxlman
+竹喧 回复xxxlman: 说错了,2015的c运行库与2010的c运行库冲突。gltools.lib应该不是是你自己编译的吧?
大约 2 年之前 回复
xxxlman
+竹喧 回复kingsoon0131: 可能是由于gltools.lib用vs2015编译的,2015的c运行库与2013的c运行库冲突
大约 2 年之前 回复
kingsoon0131
kingsoon0131 把运行库改成MD也还是报同样的错误,换到vc2015下运行成功了,请问这是什么原因
大约 2 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐