PDA

View Full Version : Linker errors using Dev-C++, need help



02-10-2002, 11:58 PM
Hello

I have started coding using OpenGL yesterday using Dev-C++ compiler(http://www.bloodshed.net). I think this compiler comes with all the GL librairies and DLL but I am not sure.

So to start with I downloaded GLUT (headers n DLL) form this link: http://www.opengl.org/developers/documentation/glut/glutdlls36.zip

Then I tried to compiled this source which will just creat and display a window:

[/i]

#include <windows.h>
#include <glut.h>


void init(void)
{
glClearColor(1.0, 1.0, 1.0, 0.0) ;
glShadeModel(GL_FLAT) ;
}

void display(void)
{
glClear(GL_COLOR_BUFFER_BIT) ;
glutSwapBuffers() ;
}


int main(int argc, char** argv)
{
glutInit (&argc, argv) ;
glutInitDisplayMode (GLUT_DOUBLE | GLUT_RGB) ;
glutInitWindowSize (400, 100) ;
glutInitWindowPosition (100, 100) ;
glutCreateWindow ("First Chapter - Opening an OpenGL Window") ;

init() ;
glutDisplayFunc (display) ;

glutMainLoop () ;

return 0 ;

}[/i]

And here are the linker errors I get:

c:\mes documents\untitled1.o: In function `display(void)':
//c/mes documents/untitled1.cpp:16: undefined reference to `glutSwapBuffers@0'
c:\mes documents\untitled1.o: In function `main':
//c/mes documents/untitled1.cpp:35: undefined reference to `glutInit@8'
//c/mes documents/untitled1.cpp:38: undefined reference to `glutInitDisplayMode@4'
//c/mes documents/untitled1.cpp:43: undefined reference to `glutInitWindowSize@8'
//c/mes documents/untitled1.cpp:47: undefined reference to `glutInitWindowPosition@8'
//c/mes documents/untitled1.cpp:52: undefined reference to `glutCreateWindow@4'
//c/mes documents/untitled1.cpp:59: undefined reference to `glutDisplayFunc@4'
//c/mes documents/untitled1.cpp:65: undefined reference to `glutMainLoop@0'
http://www.opengl.org/discussion_boards/ubb/confused.gif

Can you help me ?

02-11-2002, 12:01 AM
Sorry for the bad use of the UBB code

robert
02-11-2002, 01:21 AM
I think what you need to do is link to the glut32.lib file.. i know how to do it in visual studio but not the program you are using http://www.opengl.org/discussion_boards/ubb/frown.gif.. however there IS a #pragma call for it but i don't know it http://www.opengl.org/discussion_boards/ubb/frown.gif

hope something i said helped!

golgi apparatus
02-11-2002, 01:28 AM
Looks like you're not linking with glut. What does your link command line look like? Somewhere in it, it should have something like this:

-L<gl directory> -lopengl32 -lglu32 -lglut32

chowe6685
02-11-2002, 05:59 AM
#pragma comment(lib, "glut32.lib")

just make sure that glut32.lib is in your library directory

02-11-2002, 09:55 PM
I don't understand this #pragma notion but I put this line:
#pragma comment(lib, "glut32.lib")
at diferent part of my source (before window.h, after window.h, then after glut.h) but the result is the same.

Then I modified the command line where there was only this written:
-lopengl32
I have added this to it:
-lglu32 -lglut32
But it gaves me the same linker errors.

I have the glut32.lib file in my include directory but apparently it cannot ne linked. http://www.opengl.org/discussion_boards/ubb/frown.gif

marcus256
02-11-2002, 11:31 PM
Wait a minute! Doesn't Dev-C++ use MinGW (which is in fact GCC)?? Then you need a file called libglut32.a, not glut32.lib. It should be included in the MinGW package, if not, check this link:
http://mefriss1.swan.ac.uk/~jfonseca/gnu-win32/software/ported/

(a bit down on the page)

sherlock
02-12-2002, 11:49 AM
Your problem is that your not linking with glut library. To do this in Dev you go to the Project menu and Project options. Where it says "further object files or linker options" type "-lglut32" (without the quotes).

02-13-2002, 11:37 AM
can you help me on how to use GLUT with dev-C++.
Should I download normal GLUT librairies and header frm openGL site: http://www.opengl.org/developers/documentation/glut/glutdlls36.zip

Or do i need GLUT for mingw32 which can be found here: http://mywebpage.netscape.com/PtrPck/glut.htm
And downloaded form this link: http://mywebpage.netscape.com/PtrPck/glutming.zip

Because I have tried both of them and I still cannot compile the source quoted above.

Any help on installing and using GLUT with Dev-C++ wud be greatly appreciated. And help me to compile my first gl program.

I tried what suggested shrlock and it gave me this error linking error:
g++: installation problem, cannot exec `ld': No such file or directory

Thx for reading, hope u can help.

GISP

sherlock
02-13-2002, 12:25 PM
To fix the problem change <glut.h> to <gl/glut.h>.

marcus256
02-13-2002, 10:51 PM
The library file should be named 'libglut32.a' (this is for MinGW/GCC, for e.g. MSVC it's 'glut32.lib'), and it should be located in your compilers 'lib' directory.

For MinGW (which is used by Dev-C++, I believe), you should be able to compile when you add '-lglut32' to your linker options line.

02-14-2002, 05:40 AM
Thank you all for helping me out.

I finally managed to compile my code. I created a "temp" folder in the "Dev-C++" directory where I stored every librairies and header found on internet. I added this directory to be search for include files by going to "Compiler options".

I copied/pasted all the files I found in the GLUT package downloaded from this site: http://www.opengl.org/developers/documentation/glut/glutdlls36.zip


Here is my code with all the comments I added so that I know what it does. This code simply displays a blank windows, I am learning openGL from this site: http://www.dev-gallery.com/main_page.htm

**************************************************
#include<windows.h> //needs to be include before OpenGL header files
#include <glut.h>
/*In order to use OpenGL and GLUT, GL Utility Toolkit; it contains references to the header files opengl.h and glu.h*/


void display(void)
{
// must be called prior to any drawing as it clears the background
glClear(GL_COLOR_BUFFER_BIT);
//it accepts one argument that specifies the desired buffer to be cleared
//it swaps the back buffer with the front buffer, as when a window is double buffered
glutSwapBuffers();
//If a window had only a single buffer the call glFlash would be used instead.
}


void init(void)
{
glClearColor(1.0, 1.0, 1.0, 0.0) ; //sets the initial clearing colour
//fourth value (0.0) is the one called alpha value and is normally used for blending

glShadeModel(GL_FLAT) ; //sets the shading model
//The shading model can be either GL_SMOOTH or GL_FLAT
//GL_FLAT: only one colour per polygon is used
//GL_SMOOTH: the colour of a polygon is interpolated among the colours of its vertices
}

//main fonction
int main (int argc, char** argv)
{
glutInit(&argc, argv); //GLUT is initialised

//display mode of the window is initialised
glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGB);
/*This function accepts quite a few arguments as the display mode of a window can be double or single buffered, RGB or indexed colour table, with or without a depth buffer etc*/

//sets the size of the window
glutInitWindowSize(400,100);
/*accepts 2 arguments which are its width and height in pixels*/

//sets the window’s initial position
glutInitWindowPosition(100,100);
/*accepts two arguments which are the horizontal and vertical distance (in pixels) from the upper left corner of the monitor*/

//creates the actual window
glutCreateWindow("First Chapter - Opening an OpenGL Window");
/*accepts a string which will be used as the window’s name as its argument*/

//responsible for any initialisation needed prior to the window construction and/or visualisation
init();

//event callback function
glutDisplayFunc (display);
/*callback functions are special functions that are registered in order to do some specific operations. This fonction refresh the content of the window. Display is the function registered as the display callback by calling the function
glutDisplayFunc(display).*/

glutMainLoop ();


return 0;
}
**************************************************

I added this line "-lopengl32 -lglut32" in the "project options".

Hope this can help anyone starting in OpenGL using GLUT and dev-c++.

02-14-2002, 02:53 PM
Dude you don't know how much i wanna thank you! i have been working on fixing all the F****** error messages i had the same problem as u!!!!!!!!!! for 5 hours i couldn't fix it!!! and finally, finally i compile something thank you so much man.

userdefined
02-15-2002, 05:38 AM
for some reason glut isnt working for me. Everytime i use it, when i compile my code, it says "Required .dll GLUT32.DLL not found". Can anyone help me

userdefined
02-15-2002, 05:40 AM
for some reason glut isnt working for me. Everytime i use it, when i compile my code, it says "Required .dll GLUT32.DLL not found". Can anyone help me

guest
02-15-2002, 05:45 AM
Originally posted by userdefined:
for some reason glut isnt working for me. Everytime i use it, when i compile my code, it says "Required .dll GLUT32.DLL not found". Can anyone help me

Make sure you have the required dll in your windows\system folder.

userdefined
02-15-2002, 07:22 AM
thanks alot for your help. finally i can compile my code.