在Mac OS Snow Leopard上使用freeglut出现问题(通过MacPorts可以成功构建)

3

我正在使用Mac OS Snow Leopard GCC 4.5.4 | GCC 4.2.1,尝试构建http://www.arcsynthesis.org/gltut/教程,首先需要构建glsdk目录。我通过Macports安装了Freeglut (必要依赖项),版本为freeglut @2.8.0_1(active),然后手动将其lib和include文件夹复制到glsdk目录中。

我用以下命令确认复制成功:ls ..../Tutorial_0_3_8/glsdk/freeglut -> include lib(由于无法生成提供的freeglut目录,我使用了来自Macports的版本)。

在解决了许多错误之后(大多是因为包含了旧代码段),我在Test目录中测试了生成的可执行文件./TestD,但遇到以下问题:

X Error of failed request: BadRequest(请求代码无效或没有此操作) Major opcode of failed request: 34(X_UngrabKey) Serial number of failed request: 28 Current serial number in output stream: 28

这是什么?一些搜索结果表明这可能是驱动程序的问题(?)。但我在其他OpenGL代码中使用glut时却可以正常运行。


1
我建议使用选项-L/opt/local/lib -I/opt/local/include进行编译,而不是将文件复制到当前目录。 - Dmytro Sirenko
不过这并没有帮助,我仍然得到相同的错误。 - Nikos Yotis
1
我正在学习这些教程。我正在使用Xcode和FLGW3进行调整。如果对任何人有所帮助,我在此提供前两章链接:https://github.com/rsanchezsaez/gltut-flgw - Ricardo Sanchez-Saez
@RicardoSánchez-Sáez 做得好!对GLFW的移植很成功! - Nikos Yotis
1个回答

2

我的X11出了问题**,这似乎是问题的原因。由于构建这组教程很棘手,我会重复我遵循的步骤,以帮助遇到类似麻烦的人。

  1. 获取源代码https://bitbucket.org/alfonse/gltut/downloads,解压并填补空缺,以便您拥有Tutorial_0_3_8而不是Tutorial 0 3 8
  2. 在glsdk目录中,在premake4.lua中注释掉--"freeglut/freeglut.lua
  3. 在glsdk目录中,运行./premake gmake,然后运行make config=release
  4. 在framework目录中,手动将宏LOCAL_FILE_DIRGLOBAL_FILE_DIR替换为"./data/""./data/"和"../data/",并注释掉#include "directories.h"
  5. 从根目录构建所有教程或您需要的教程,例如在Test目录中,放置正确的路径以包含freeglut头文件并链接:在Test.make中,将-I../glsdk/glutil/include-L../glsdk/glutil/lib替换为通过macports构建的freeglut构建的路径。同样在同一makefile中,使用-lglut而不是-lfreeglut进行链接。

**dyld: Symbol not found: __cg_DGifGetLine Referenced from: /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/ImageIO.framework/Versions/A/ImageIO Expected in: /opt/local/lib/libGIF.dylib in /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/ImageIO.framework/Versions/A/ImageIO


我按照这个答案的步骤操作了,但我仍然遇到了你在问题中发布的“X Error of failed request: BadRequest”错误。你能想到还有其他步骤吗? - Ricardo Sanchez-Saez

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