
Wolfgang Thaller wrote:
[...] Not exactly a solution, but it should explain the problem...
Yep, it looks like a missing header problem. A better solution would be telling your ghc about a HOpenGL package. Assuming you have successfully compiled HOpenGL at /my/home/dir/HOpenGL-1.01, create a package configuration file HOpenGL.conf containing: --SNIP----SNIP----SNIP----SNIP----SNIP----SNIP----SNIP----SNIP----SNIP-- [Package {name = "HOpenGL", import_dirs = ["/my/home/dir/HOpenGL-1.01/lib"], source_dirs = [], library_dirs = ["/my/home/dir/HOpenGL-1.01/lib"], hs_libraries = ["HOpenGL"], extra_libraries = [], include_dirs = [], c_includes = ["GL/glut.h"], package_deps = ["base"], extra_ghc_opts = [], extra_cc_opts = ["", "-I/usr/X11R6/include"], extra_ld_opts = ["", "-lglut", "-lGLU", "-lGL", "-lSM", "-lICE", "-L/usr/X11R6/lib", "-lX11", "-lXext", "-lXmu", "-lXt", "-lXi", "-lm"]}] --SNIP----SNIP----SNIP----SNIP----SNIP----SNIP----SNIP----SNIP----SNIP-- Your mileage may vary with the extra_ld_opts, have a look at GL_LIBS in your /my/home/dir/HOpenGL-1.01/config.mk to see what configure found about those. Then you have the option of making HOpenGL globally know to ghc via ghc-pkg --add-package < HOpenGL.conf and use "-package HOpenGL" or add -package-conf HOpenGL.conf -package HOpenGL to the ghc flags for your example to make it known locally only, see http://haskell.org/ghc/docs/latest/set/packages.html#PACKAGE-MANAGEMENT Things like this are currently all a bit messy, I know, but libraries, package handling, GLU versions etc. are a constantly moving target. After HOpenGL's rewrite this will definitely improve... Have fun rendering, S.