Avatar billede dcgeek Nybegynder
21. september 2002 - 18:05 Der er 4 kommentarer og
1 løsning

Undefined reference

Jeg har prøvet at compile denne source-code:

#include <windows.h> /* obviously change this to your native library
            if you're compiling under unix */
#include <gl\gl.h>
#include <gl\glut.h>

void init(void);
void display(void);

int main (int argc, char **argv)
{
    glutInit(&argc, argv);
    glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGB);
    glutInitWindowSize(250, 250);
    glutInitWindowPosition(100, 100);
    glutCreateWindow("My First OpenGL Application");
    init();
    glutDisplayFunc(display);
    glutMainLoop();
    return 0;
}

void init(void)
{
    glClearColor(0.0, 0.0, 0.0, 0.0);
    glColor3f(0.0, 0.0, 1.0);
    glMatrixMode(GL_PROJECTION);   
    glLoadIdentity();
    glOrtho(-10.0, 10.0, -10.0, 10.0, -10.0, 10.0);
}

void display(void)
{
    glClear(GL_COLOR_BUFFER_BIT);
    glRectf(-5.0, 5.0, 5.0, -5.0);
    glutSwapBuffers();
}

Jeg har både glut.h, og gl.h men alligevel kommer den med fejl!
Linkeren giver mig følgende fejlmeddelelser:

c:\dev-c++\untitled1.o(.text+0x33):untitled1.cpp: undefined reference to `glutInit@8'
c:\dev-c++\untitled1.o(.text+0x40):untitled1.cpp: undefined reference to `glutInitDisplayMode@4'
c:\dev-c++\untitled1.o(.text+0x55):untitled1.cpp: undefined reference to `glutInitWindowSize@8'
c:\dev-c++\untitled1.o(.text+0x64):untitled1.cpp: undefined reference to `glutInitWindowPosition@8'
c:\dev-c++\untitled1.o(.text+0x74):untitled1.cpp: undefined reference to `glutCreateWindow@4'
c:\dev-c++\untitled1.o(.text+0x89):untitled1.cpp: undefined reference to `glutDisplayFunc@4'
c:\dev-c++\untitled1.o(.text+0x91):untitled1.cpp: undefined reference to `glutMainLoop@0'
c:\dev-c++\untitled1.o(.text+0xc7):untitled1.cpp: undefined reference to `glClearColor@16'
c:\dev-c++\untitled1.o(.text+0xd8):untitled1.cpp: undefined reference to `glColor3f@12'
c:\dev-c++\untitled1.o(.text+0xe8):untitled1.cpp: undefined reference to `glMatrixMode@4'
c:\dev-c++\untitled1.o(.text+0xf0):untitled1.cpp: undefined reference to `glLoadIdentity@0'
c:\dev-c++\untitled1.o(.text+0x13d):untitled1.cpp: undefined reference to `glOrtho@48'
c:\dev-c++\untitled1.o(.text+0x15f):untitled1.cpp: undefined reference to `glClear@4'
c:\dev-c++\untitled1.o(.text+0x197):untitled1.cpp: undefined reference to `glRectf@16'
c:\dev-c++\untitled1.o(.text+0x19c):untitled1.cpp: undefined reference to `glutSwapBuffers@0'

Jeg bruger Dev-C++.
Avatar billede mbulow Nybegynder
21. september 2002 - 18:30 #1
Menuen : Project -> Project Options:

I "Linker options/Optional libs or object files" indtaster du:

-lglut32 -lopengl32
Avatar billede mbulow Nybegynder
21. september 2002 - 18:43 #2
Hov... Ud fra at din Dev-C++ er installeret i en mappe der hedder dev-c++, vil jeg tro du har installeret version 4, ik?

Så er jeg desværre ikke helt sikker på at feltet hedder:
"Linker options/Optional libs or object files"

Men du skal i hvert fald "bare" linke til de libraries der hedder:
glut32 og opengl32
Avatar billede soreno Praktikant
21. september 2002 - 19:08 #3
så vidt jeg husker er glut ikke med i dev-cpp pakken, hvis jeg husker rigtigt så kan den hentes her:
http://www.xmission.com/~nate/glut.html
Avatar billede soreno Praktikant
21. september 2002 - 19:18 #4
(det er libglut32.a du mangler at linke med, kig evt. om den findes i dit lib dir)
Avatar billede dcgeek Nybegynder
21. september 2002 - 20:16 #5
okay... så ved jeg det, fremover :) Altid huske at linke til
C:\Dev-C++\Lib\libglut32.a C:\Dev-C++\Lib\libglaux.a C:\Dev-C++\Lib\libglu32.a C:\Dev-C++\Lib\libopengl32.a
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester