2012-01-04 83 views
1

我正在阅读OpenGl superbible,并且在第一个三角形程序中它不会运行。 该程序编译得很好,但是当我运行它,它给了我错误信息freeglut.dll从您的计算机丢失。我下载并把它放在正确的目录中,它说MSVCR71.dll丢失了,所以我下载了它,并把它放在正确的目录,它开始说“过程入口点__glutCreateWindowWithExit不能位于动态链接库freeglut.dll“。有谁知道我做错了什么?我遵循了这本书告诉我的所有方向。freeglut.dll丢失

+2

你不应该只下载一个像那样的DLL。在'freeglut.dll'的情况下,您需要与您使用的相应'.lib'文件完全匹配的版本。对于'mscvr71.dll',您需要将整个运行时作为匹配的版本集,并且需要正确安装。 – 2012-01-04 03:40:58

+0

三角形是一个有用的标签吗? – 2012-01-04 04:01:19

+0

@LightnessRacesinOrbit:不,我删除它(动物标本) – datenwolf 2012-01-04 09:12:02

回答

6

你不能只抓住interwebtubes中的随机DLL并将它们转储到你的PC上。有版本问题可以认为你完全绕过。当MSVC运行时依赖关系没有连接起来时它应该是一个提示。

正确安装freeGLUT软件包的全部内容。

-1

编译器中没有可以链接库的选项吗?例如,如果您使用DevC++,则应该转到Project - > Project Options - > Parameters,然后设置Linkers。

4

我有同样的问题。请按照下列步骤操作:

假设您执行了书中给出的所有步骤。

  1. 从同伴网站下载源代码...我认为该文件夹是SB5和它的92 MB。
  2. 然后建立名为'freeglut.vcproj'的项目。
  3. 它会产生freeglut.dll除了其他files.Put freeglut.dll到C:\ WINDOWS \ SYSWOW64文件夹,一切都完成了。
0

如果你正在运行这个MSVC,你可以在任何你的可执行文件中包含dll,然后你可以把dll放到Debug文件夹中。清理文件夹将删除除dll以外的所有内容,因此您不必担心不断重新复制它。此外,如果你想要一个替代的解决方案,你可以只把DLL你里面的Windows/System32文件夹中,或者在64位架构的情况下,你可以把它的系统内/ SYSWOW64文件夹