我正在阅读《OpenGL超级宝典》,在第一个三角形程序上,它无法运行。
虽然程序可以编译通过,但是当我运行它时,它给了我一个错误消息:freeglut.dll缺失。我下载了它并把它放到了正确的目录中,然后它说MSVCR71.dll缺失,所以我下载了它并把它放到了正确的目录中,但是它开始显示:“动态链接库freeglut.dll中找不到__glutCreateWindowWithExit过程入口点”。有人知道我做错了什么吗?我按照书本告诉我的所有指导做了。
您不能从互联网上随便下载DLL文件并将它们丢到您的PC上。你需要考虑版本问题,否则很可能会绕过这个问题。如果MSVC运行时依赖项没有链接起来,那就应该是一个暗示了。
请完整地安装freeGLUT软件包。
我曾经也遇到过同样的问题。按照以下步骤进行:
假设你已经按照书中所给出的所有步骤进行了操作。
如果你在运行 MSVC,你可以将 dll 文件放在你的 Debug 文件夹中,这样无论何时你都可以使用它。清理文件夹会删除除了该 dll 以外的所有内容,因此你不必担心需要不停地复制它。此外,如果你想要另一种解决方案,你可以将该 dll 文件放到 Windows/System32 文件夹中,或者在64位架构的情况下,可以将其放在 System/SysWow64 文件夹中。
freeglut.dll 应该放置在 VS 项目文件夹中。该 dll 是 MSVC 包的一部分 - http://www.transmissionzero.co.uk/software/freeglut-devel/
编译器中难道没有你可以链接库的选项吗?例如,如果你使用DevC++,你应该进入“项目”->“项目选项”->“参数”,并设置链接器。
freeglut.dll
,你需要精确匹配相应的.lib
文件的版本。而对于mscvr71.dll
,你需要整个运行时环境以匹配正确的版本,并且需要进行正确的安装。 - David Schwartz