[Haskell-cafe] Linker Errors For OpenGL / GLUT 'Hello World' Program.

Donnie Jones donnie at darthik.com
Sat Sep 20 21:47:35 EDT 2008


Hello Clifford,

Thank you for the quick reply.
I was able to get a test C program that draws a triangle with GLUT to work:
gcc -lglut triangle.o -o triangle.exe

However, when building the Haskell GLUT 'Hello World' it uses, -lGLU to link
GLUT, but that does not work; however, from the config.log output configure
seems to think that -lGL should work.  Is there a way I can change the build
to use -lglut?  Maybe with configure I can specify that -lglut is the
correct way to link the GLUT libraries?

Thank you!
__
Donnie

On Sat, Sep 20, 2008 at 3:42 PM, Clifford Beshers <
clifford.beshers at gmail.com> wrote:
It works for me.  I'm running Ubuntu Hardy with some packages built by us at
SeeReason (see debs.seereason.com).

It looks like ghc can't find your glut libraries (not the Haskell wrappers,
but the real GLUT libs). Try 'ghc -v --make ' and look at the linking lines
and see what GHC is specifying (mine shows a -lglut).  Try compiling an
example C program against GLUT and see if that works.

My package list looks like this:
beshers at blue:~/haskell$ dpkg -l \*glut\*
Desired=Unknown/Install/

Remove/Purge/Hold
| Status=Not/Installed/Config-f/Unpacked/Failed-cfg/Half-inst/t-aWait/T-pend
|/ Err?=(none)/Hold/Reinst-required/X=both-problems (Status,Err:
uppercase=bad)
||/ Name           Version        Description
+++-==============-==============-============================================
un  freeglut-dev   <none>         (no description available)
ii  freeglut3      2.4.0-6        OpenGL Utility Toolkit
ii  freeglut3-dev  2.4.0-6        OpenGL Utility Toolkit development files
un  glut-doc       <none>         (no description available)
un  glutg3         <none>         (no description available)
un  glutg3-dev     <none>         (no description available)
ii  libghc6-glut-d 2.1.1.1-2+3see Haskell GLUT binding for GHC
un  libghc6-glut-d <none>         (no description available)
un  libghc6-glut-p <none>         (no description available)
un  libglut        <none>         (no description available)
un  libglut-dev    <none>         (no description available)
pn  libglut3       <none>         (no description available)
un  libglut3-dev   <none>         (no description available)



On Sat, Sep 20, 2008 at 1:13 PM, Donnie Jones <donnie at darthik.com> wrote:

> Hello Brandon,
>
> On Sat, Sep 20, 2008 at 1:02 PM, Brandon S. Allbery KF8NH <
> allbery at ece.cmu.edu> wrote:
>
>> On 2008 Sep 20, at 12:57, Donnie Jones wrote:
>>
>> checking GL/gl.h usability... yes
>> checking GL/gl.h presence... yes
>> checking for GL/gl.h... yes
>> checking OpenGL/gl.h usability... no
>> checking OpenGL/gl.h presence... no
>> checking for OpenGL/gl.h... no
>> checking GL/glu.h usability... yes
>> checking GL/glu.h presence... yes
>> checking for GL/glu.h... yes
>> checking OpenGL/glu.h usability... no
>> checking OpenGL/glu.h presence... no
>> checking for OpenGL/glu.h... no
>>
>> That looks like to me that the gl.h and glu.h header files were found and
>> are usable (in some cases).  I am able to build
>>
>>
>> Yes, you have the header.  But it says nothing about whether -lGLU was
>> found, and that's where your problems are.
>> Also, that's configure output, not config.log output (which has a
>> transcript of the tests, not just the summary).
>>
>>
> ### Relevant lines that include "-lGL" or "-lGLU" in config.log ###
> configure:4634: checking for GL library
> configure:4670: gcc -o conftest -g -O2    conftest.c -lGL -lm   >&5
> configure:4676: $? = 0
> configure:4696: result: -lGL -lm
> configure:4773: checking for GLU library
> configure:4809: gcc -o conftest -g -O2    conftest.c -lglu32 -lGL -lm   >&5
> /usr/bin/ld: cannot find -lglu32
> collect2: ld returned 1 exit status
> configure:4815: $? = 1
> configure: failed program was:
> | /* confdefs.h.  */
> | #define PACKAGE_NAME "Haskell OpenGL package"
> | #define PACKAGE_TARNAME "OpenGL"
> | #define PACKAGE_VERSION "2.2.1"
> | #define PACKAGE_STRING "Haskell OpenGL package 2.2.1"
> | #define PACKAGE_BUGREPORT "sven.panne at aedion.de"
> | /* end confdefs.h.  */
> | #include <GL/glu.h>
> | int
> | main ()
> | {
> | gluNewQuadric()
> |   ;
> |   return 0;
> | }
> configure:4809: gcc -o conftest -g -O2    conftest.c -lGLU -lGL -lm   >&5
> configure:4815: $? = 0
> configure:4835: result: -lGLU -lGL -lm
> ...
> fp_cv_check_GLU_lib='-lGLU -lGL -lm '
> fp_cv_check_GL_lib='-lGL -lm '
> ...
> GLU_LIBS=' -lGLU -lGL -lm '
> ...
> GL_LIBS=' -lGL -lm '
> ...
> #define GLU_LIBS "-lGLU" ,"-lGL" ,"-lm"
> ########################################
>
> It seems like the OpenGL and GLUT libraries are found (after -lglu32 fails,
> I am using Debian Linux).  I am not sure what to try now.
>
> Thank you for the help.  :)
> __
> Donnie
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://www.haskell.org/pipermail/haskell-cafe/attachments/20080920/dff6f143/attachment.htm


More information about the Haskell-Cafe mailing list