[Haskell-cafe] Strange GLFW linker problem on Linux

Peter Verswyvelen bf3 at telenet.be
Mon Jan 14 15:58:35 EST 2008


Because apparently GHC works much better on Linux than Windows, I
switched to that platform. I'm currently trying Fedora 8. So now I'm
completely alone in the dark: no experience with Haskell, no experience
with Linux; I left decades of experience with Microsoft products behind
me ;-) 

I tried compiling GFLW (used by SOE) and a Haskell test app on my
laptop, and that worked fine. Then I installed Fedora on my desktop,
installed all development tools, and GLFW (both the C library and
Haskell wrapper) also compiled and linked fine, but when trying to link
the test app to GLFW, I got linker errors (see below).

It seems these symbols are defined in libXrandr, but I have both the
binary as the devel package installed:

[root at localhost dev]# yum list installed | grep Xrandr
libXrandr.i386         1.2.2-1.fc8            installed       
libXrandr-devel.i386   1.2.2-1.fc8            installed   

So I have no idea what to do. The main difference between the laptop and
desktop is that I installed the NVidia drivers on the desktop manually
(first installed the kernel-devel package, and then downloaded and
installed the linux driver from the nvidia website)

Any hints?

Thanks,
Peter

Linker errors reported by ghc --make Main.hs:

/usr/local/lib/GLFW-0.1/ghc-6.8.2/libHSGLFW-0.1.a(x11_window.o): In
function `_glfwPlatformRefreshWindowParams':
x11_window.c:(.text+0x803): undefined reference to `XRRGetScreenInfo'
x11_window.c:(.text+0x80d): undefined reference to
`XRRConfigCurrentRate'
x11_window.c:(.text+0x81b): undefined reference to
`XRRFreeScreenConfigInfo'
/usr/local/lib/GLFW-0.1/ghc-6.8.2/libHSGLFW-0.1.a(x11_window.o): In
function `_glfwPlatformCloseWindow':
x11_window.c:(.text+0xb7a): undefined reference to `XRRGetScreenInfo'
x11_window.c:(.text+0xb9d): undefined reference to `XRRSetScreenConfig'
x11_window.c:(.text+0xba6): undefined reference to
`XRRFreeScreenConfigInfo'
/usr/local/lib/GLFW-0.1/ghc-6.8.2/libHSGLFW-0.1.a(x11_window.o): In
function `_glfwPlatformPollEvents':
x11_window.c:(.text+0x115b): undefined reference to
`XRRUpdateConfiguration'
/usr/local/lib/GLFW-0.1/ghc-6.8.2/libHSGLFW-0.1.a(x11_window.o): In
function `_glfwPlatformOpenWindow':
x11_window.c:(.text+0x1fa5): undefined reference to `XRRSelectInput'
/usr/local/lib/GLFW-0.1/ghc-6.8.2/libHSGLFW-0.1.a(x11_fullscreen.o): In
function `_glfwPlatformGetVideoModes':
x11_fullscreen.c:(.text+0x1ca): undefined reference to
`XRRGetScreenInfo'
x11_fullscreen.c:(.text+0x1db): undefined reference to `XRRConfigSizes'
x11_fullscreen.c:(.text+0x219): undefined reference to
`XRRFreeScreenConfigInfo'
/usr/local/lib/GLFW-0.1/ghc-6.8.2/libHSGLFW-0.1.a(x11_fullscreen.o): In
function `_glfwSetVideoModeMODE':
x11_fullscreen.c:(.text+0x329): undefined reference to
`XRRGetScreenInfo'
x11_fullscreen.c:(.text+0x344): undefined reference to
`XRRConfigCurrentConfiguration'
x11_fullscreen.c:(.text+0x394): undefined reference to
`XRRSetScreenConfigAndRate'
x11_fullscreen.c:(.text+0x3ac): undefined reference to
`XRRSetScreenConfig'
/usr/local/lib/GLFW-0.1/ghc-6.8.2/libHSGLFW-0.1.a(x11_fullscreen.o): In
function `_glfwGetClosestVideoMode':
x11_fullscreen.c:(.text+0x3fa): undefined reference to
`XRRGetScreenInfo'
x11_fullscreen.c:(.text+0x408): undefined reference to `XRRConfigSizes'
x11_fullscreen.c:(.text+0x48f): undefined reference to `XRRConfigRates'
x11_fullscreen.c:(.text+0x4dc): undefined reference to
`XRRFreeScreenConfigInfo'
x11_fullscreen.c:(.text+0x512): undefined reference to
`XRRFreeScreenConfigInfo'
/usr/local/lib/GLFW-0.1/ghc-6.8.2/libHSGLFW-0.1.a(x11_fullscreen.o): In
function `_glfwSetVideoModeMODE':
x11_fullscreen.c:(.text+0x3be): undefined reference to
`XRRFreeScreenConfigInfo'
/usr/local/lib/GLFW-0.1/ghc-6.8.2/libHSGLFW-0.1.a(x11_init.o): In
function `_glfwPlatformInit':
x11_init.c:(.text+0xea): undefined reference to `XRRQueryExtension'
collect2: ld returned 1 exit status





More information about the Haskell-Cafe mailing list