问题
im on mac os snow leopard gcc 4.5.4 | gcc 4.2.1, trying to build the tutorials http://www.arcsynthesis.org/gltut/
one needs to build dir glsdk first. I install freeglut (prerequisite) via macports freeglut @2.8.0_1 (active) and manually copy and paste its lib and include folders in dir glsdk so that ls ..../Tutorial_0_3_8/glsdk/freeglut -> include lib (I couldn't build the freeglut provided that's why I replace it with the one from macports)
after fixing many errors (mostly due to legacy snippets included) I'm testing the build in Test dir and when I try to run the generated executable ./TestD, I get:
X Error of failed request: BadRequest (invalid request code or no such operation) Major opcode of failed request: 34 (X_UngrabKey) Serial number of failed request: 28 Current serial number in output stream: 28
what's this? a bit of search suggests this is a driver's problem(?).. when I use glut with other gl code it runs just fine
回答1:
my X11 is broken** and this seems to be the problem. since it's tricky to build this set of tutorials, I repeat the steps I followed for anyone facing similar trouble
- get the source https://bitbucket.org/alfonse/gltut/downloads, untar and fill in the gaps so that you have Tutorial_0_3_8 instead of Tutorial 0 3 8
- in glsdk directory, comment out
--"freeglut/freeglut.lua
, in premake4.lua - in glsdk directory,
./premake gmake
and thenmake config=release
- in framework directory, framework.cpp, manually replace macros
LOCAL_FILE_DIR
&GLOBAL_FILE_DIR
with "./data/""./data/"
&"../data/"
respectively and comment out#include "directories.h"
- build all the tutorials in a single step from root or those that you need, e.g. in Test directory put the right paths to include for freeglut headers and link with the:
in Test.make replace
-I../glsdk/glutil/include
and-L../glsdk/glutil/lib
with paths from freeglut build via macports. Also in the same makefile link with-lglut
instead of-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
来源:https://stackoverflow.com/questions/12229211/issues-with-freeglut-on-mac-os-snow-leopard-it-builds-fine-via-macports