1

首先,我真的需要制作一个 64 位版本的 glfwdll.a 和 glfw.dll (所以我希望最终能够成功地让 Go glfw 绑定在 Windows 下工作......在 Linux 下轻而易举!)

似乎我现在使用 mingw64、MSYS 及其 make 脚本成功编译了 64 位版本的 glfwdll.a 和 glfw.dll,即使我确实收到了一些错误消息,如“找不到 maincrt 入口点,使用默认 0xsomehexnumber相反”或类似的。入口点当然是指可执行文件,在这种情况下是示例目录中的那些。

事实上,它们中的大多数都不起作用!然而,一切都建成了。以下可执行文件有效:

listmodes.exe mtbench.exe mthello.exe 和particle.exe - 后者是唯一为我工作的图形(3d gfx)示例(前者只是将一些测试信息输出到控制台窗口)。

现在其他的有什么问题?它们不会崩溃,它们不会向控制台报告任何内容……我运行它们,它们会立即返回,无声无息。

我的 GLFW 构建是否损坏?怎么修?4 个有效的示例和其他无效的示例之间的最大区别是什么?

这是一个相当新的、普通的 Win7 64 位安装。没有垃圾软件,一切都是最新的,UAC 和主题都关闭了,根本没有安装很多软件,更新了 Nvidia GPU 驱动程序(GPU Caps Viewer 等运行良好,所以 OpenGL 就在那里)。

4

2 回答 2

3

我还不允许添加评论,所以我会发布这个作为答案。

您遇到的问题是由于 GLFW 中的三个单独的错误。我今天修复了它们,这些修复将包含在 GLFW 2.7.6 中。在此之前,您可以使用GLFW Subversion 存储库中的主干。

于 2012-07-02T20:59:15.937 回答
2

为确保您确实没有 opengl32.dll、glu32.dll、glut32.dll 等的 DLL 地狱问题,请查看事件查看器工具,看看您的应用程序是否有一些警告或错误。

这是我的想法,因为您只能运行与“真正的”OpenGL API 毫无共同之处的 mtbench 和 mthello。

虽然没有关于particle.exe 的线索 - 也许 GLFW 在内部检查错误并调用 exit() 例程?还要检查 %errorlevel%。

也看看这里: http ://glfw.svn.sourceforge.net/viewvc/glfw/trunk/examples/pong3d.c?revision=1110&view=markup

如果 "!glfwGetWindowParam( GLFW_OPENED )"有一个 GameMenu() 函数可能会静默退出,这显然意味着 OpenGL初始化。

相同的函数在此处用作退出标志 http://glfw.svn.sourceforge.net/viewvc/glfw/trunk/examples/wave.c?revision=1110&view=markup

再次仔细检查 DLL!

我相信您在构建过程中不会犯“高级”错误,因此在“用户级别”可能会发生一些有趣的事情。

还有另一个建议:http: //sourceforge.net/projects/glfw/forums/forum/247562/topic/3868944

某些参数可能不完全适合您。

要“修复”示例,请尝试注释掉 glfwGetWindowParam 调用。

于 2012-04-28T13:48:44.510 回答