在mingw64下编译GLFW的Win64版本

时间:2012-04-28 03:46:45

标签: gcc mingw msys glfw mingw-w64

首先,我真的需要制作一个64位版本的glfwdll.a和glfw.dll(所以我希望最终成功地让Go glfw绑定在Windows下工作......在Linux下是一个breeeeze!)< / p>

似乎我现在已成功使用mingw64,MSYS及其make脚本编译64位版本的glfwdll.a和glfw.dll,即使我确实收到了几条错误消息“maincrt entry point not found,使用默认的0xsomehexnumber代替“或某些此类。入口点当然是指可执行文件,在本例中是示例目录中的可执行文件。

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

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

现在与其他问题有什么关系?它们不会崩溃,它们不向控制台报告任何内容......我运行它们,它们会立即静默地返回。

我的GLFW构建是否破损?怎么修?有效的4个例子和没有的例子有什么区别?

这是一个相当新的,香草Win7 64位安装。没有任何crapware,一切都是最新的,UAC和主题都关闭了,根本没有安装很多软件,Nvidia GPU驱动程序更新(GPU Caps Viewer和喜欢的设备运行良好,所以OpenGL就在那里)。

2 个答案:

答案 0 :(得分:3)

我还不允许添加评论,因此我会将此作为答案发布。

您遇到的问题是由于GLFW中有三个单独的错误。我今天修复了它们,修复程序将包含在GLFW 2.7.6中。在此之前,您可以使用GLFW Subversion repository中的中继。

答案 1 :(得分:2)

为了确保你真的没有关于opengl32.dll,glu32.dll,glut32.dll等的DLL-hell问题,请查看事件查看器工具,看看你的应用程序是否有一些警告或错误。

这是我的想法,因为你只能运行与“真正的”OpenGL API没有任何共同点的mtbench和mthello。

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

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

有一个GameMenu()函数,如果“!glfwGetWindowParam(GLFW_OPENED)”,可以静默退出,这显然意味着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调用。