错误1 错误 LNK1107:文件无效或损坏:无法在0x2B0处读取

36

我是opengl的新手,对这个错误一无所知。我正在使用Visual Studio 2012 > C++ > Empty Project。我按照其他电脑上的步骤操作也可以成功,但是在我的电脑上却出现了这个错误。

错误提示

Error 1 error LNK1107: 无效或损坏的文件: 无法在 0x2B0 处读取 ?>C:\Users\Uxi\Desktop\Sp16 \Vs\OpenglPrac\OpenglPrac\glew32.dll 1 1 >OpenglPrac

我遵循以下步骤:

  1. 将Glew和Glut文件夹从我的文件夹复制到桌面上。
  2. 打开Visual Studio,选择新项目
  3. 选择Visual C++,选择空项目
  4. 将OpenGLProject作为项目名称。
  5. 右键单击解决方案浏览器中的项目,选择添加 -> 添加新项。
  6. 选择C ++ .cpp项,命名为HelloOpenGL。
  7. 再次右键单击项目,选择属性
  8. 在配置下拉列表中选择所有配置
  9. 转到C / C ++ ->常规
  10. 转到附加包含目录
  11. 单击右侧的按钮,选择编辑,然后选择glew / include文件夹
  12. 单击右侧的按钮,选择编辑,然后选择glut / include文件夹
  13. 按确定
  14. 现在转到链接器 - > 输入
  15. 转到附加依赖项
  16. 单击编辑并正确输入glew32.lib和freeglut.lib。
  17. 按确定
  18. 现在转到常规
  19. 进入其他库目录
  20. 进入Glew文件夹并选择lib
  21. 进入freeglut文件夹并选择lib。

谢谢。


2
请确保您已经链接到 glew32.lib 而不是 glew32.dll。通常,当链接到 dll 而不是 lib 时,会出现此错误,并且错误消息也会显示 glew32.dll(这通常根本不应该是链接过程的一部分)。 - BDL
嗨,谢谢bdl。 我错误地在链接中写了glew32.dll而不是glew32.lib,现在我编译项目时没有出现错误,但我的构建卡在OpenglPrac.vcxproj -> . - Uzair
“Hang”是什么意思?它是否在构建过程中某个地方停止了?输出窗口显示了什么? - BDL
是的,它在构建中冻结了。没有输出生成。我知道这是工具集的问题,但它没有显示为win-xp选项。 - Uzair
1个回答

81

错误信息表明,您已经链接到 glew32.dll 而非 glew32.lib。您必须始终链接到 lib 文件,并将 dll 复制到可以在运行时找到的位置。


亲爱的@BDL,我按照相同的方式操作,但在构建过程中出现了“代码执行无法继续***.dll未找到。重新安装可能会解决此问题”。我的**.lib位于include文件夹中,.dll位于bin文件夹中。C/C++ -> 我已添加包括和bil文件夹。 链接器 -> 常规 -> 我已添加包括和bil文件夹。 链接器 -> 输入 -> 仅链接***.lib - Serhat Özyıldız

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接