undefined reference to opengl-funktionen



  • Ich will ein SDL/Gl Programm kompilieren, bekomme aber folgende Fehler:

    make: Entering directory `/d/Eigene Dateien/cpp/gl/tloader'
    ......................................................................
    linking ...
    main.o:main.cpp:(.text+0x13b): undefined reference to `glShadeModel@4'
    main.o:main.cpp:(.text+0x14a): undefined reference to `glCullFace@4'
    main.o:main.cpp:(.text+0x159): undefined reference to `glFrontFace@4'
    main.o:main.cpp:(.text+0x168): undefined reference to `glEnable@4'
    main.o:main.cpp:(.text+0x193): undefined reference to `glClearColor@16'
    main.o:main.cpp:(.text+0x1bc): undefined reference to `glViewport@16'
    main.o:main.cpp:(.text+0x1cb): undefined reference to `glMatrixMode@4'
    main.o:main.cpp:(.text+0x1d3): undefined reference to `glLoadIdentity@0'
    main.o:main.cpp:(.text+0x1f8): undefined reference to `gluPerspective@32'
    main.o:main.cpp:(.text+0x209): undefined reference to `SDL_PumpEvents'
    main.o:main.cpp:(.text+0x215): undefined reference to `SDL_GetKeyState'
    main.o:main.cpp:(.text+0x26b): undefined reference to `glColor3f@12'
    main.o:main.cpp:(.text+0x288): undefined reference to `glMaterialfv@12'
    main.o:main.cpp:(.text+0x45a): undefined reference to `glGenTextures@8'
    main.o:main.cpp:(.text+0x473): undefined reference to `glBindTexture@8'
    main.o:main.cpp:(.text+0x4c4): undefined reference to `glTexImage2D@36'
    main.o:main.cpp:(.text+0x505): undefined reference to `gluBuild2DMipmaps@28'
    main.o:main.cpp:(.text+0x524): undefined reference to `glTexParameteri@12'
    main.o:main.cpp:(.text+0x543): undefined reference to `glTexParameteri@12'
    main.o:main.cpp:(.text+0x562): undefined reference to `glTexParameteri@12'
    main.o:main.cpp:(.text+0x581): undefined reference to `glTexParameteri@12'
    main.o:main.cpp:(.text+0x598): undefined reference to `glBindTexture@8'
    main.o:main.cpp:(.text+0x5b6): undefined reference to `glClear@4'
    main.o:main.cpp:(.text+0x5c5): undefined reference to `glEnable@4'
    main.o:main.cpp:(.text+0x5d4): undefined reference to `glEnable@4'
    main.o:main.cpp:(.text+0x5eb): undefined reference to `glLightModeli@8'
    main.o:main.cpp:(.text+0x5fa): undefined reference to `glMatrixMode@4'
    main.o:main.cpp:(.text+0x602): undefined reference to `glLoadIdentity@0'
    main.o:main.cpp:(.text+0x636): undefined reference to `gluPerspective@32'
    main.o:main.cpp:(.text+0x645): undefined reference to `glMatrixMode@4'
    main.o:main.cpp:(.text+0x64d): undefined reference to `glLoadIdentity@0'
    main.o:main.cpp:(.text+0x68f): undefined reference to `gluLookAt@72'
    main.o:main.cpp:(.text+0x69e): undefined reference to `glEnable@4'
    main.o:main.cpp:(.text+0x6d5): undefined reference to `glPointSize@4'
    main.o:main.cpp:(.text+0x6e4): undefined reference to `glBegin@4'
    main.o:main.cpp:(.text+0x706): undefined reference to `glVertex3f@12'
    main.o:main.cpp:(.text+0x70e): undefined reference to `glEnd@0'
    main.o:main.cpp:(.text+0x713): undefined reference to `SDL_GL_SwapBuffers'
    main.o:main.cpp:(.text+0x728): undefined reference to `SDL_Init'
    main.o:main.cpp:(.text+0x73d): undefined reference to `SDL_GetVideoInfo'
    main.o:main.cpp:(.text+0x787): undefined reference to `SDL_GL_SetAttribute'
    main.o:main.cpp:(.text+0x79b): undefined reference to `SDL_GL_SetAttribute'
    main.o:main.cpp:(.text+0x7af): undefined reference to `SDL_GL_SetAttribute'
    main.o:main.cpp:(.text+0x7c3): undefined reference to `SDL_GL_SetAttribute'
    main.o:main.cpp:(.text+0x7d7): undefined reference to `SDL_GL_SetAttribute'
    main.o:main.cpp:(.text+0x802): undefined reference to `SDL_SetVideoMode'
    shader.o:shader.cpp:(.text+0x15d): undefined reference to `_imp____glewGetObjectParameterivARB'
    shader.o:shader.cpp:(.text+0x193): undefined reference to `_imp____glewGetInfoLogARB'
    shader.o:shader.cpp:(.text+0x206): undefined reference to `_imp____glewCreateShaderObjectARB'
    shader.o:shader.cpp:(.text+0x239): undefined reference to `_imp____glewCreateProgramObjectARB'
    shader.o:shader.cpp:(.text+0x276): undefined reference to `_imp____glewCompileShaderARB'
    shader.o:shader.cpp:(.text+0x2a3): undefined reference to `_imp____glewGetObjectParameterivARB'
    shader.o:shader.cpp:(.text+0x2d6): undefined reference to `_imp____glewDeleteObjectARB'
    shader.o:shader.cpp:(.text+0x316): undefined reference to `_imp____glewLinkProgramARB'
    shader.o:shader.cpp:(.text+0x343): undefined reference to `_imp____glewGetObjectParameterivARB'
    shader.o:shader.cpp:(.text+0x376): undefined reference to `_imp____glewDeleteObjectARB'
    shader.o:shader.cpp:(.text+0x3c0): undefined reference to `_imp____glewShaderSourceARB'
    shader.o:shader.cpp:(.text+0x3fe): undefined reference to `_imp____glewAttachObjectARB'
    shader.o:shader.cpp:(.text+0x4a0): undefined reference to `_imp____glewGetUniformLocationARB'
    shader.o:shader.cpp:(.text+0x5f1): undefined reference to `_imp____glewUseProgramObjectARB'
    shader.o:shader.cpp:(.text+0x606): undefined reference to `_imp____glewUniform1iARB'
    shader.o:shader.cpp:(.text+0x623): undefined reference to `_imp____glewUniform1iARB'
    shader.o:shader.cpp:(.text+0x640): undefined reference to `_imp____glewUniform1iARB'
    shader.o:shader.cpp:(.text+0x65c): undefined reference to `_imp____glewUseProgramObjectARB'
    shader.o:shader.cpp:(.text+0x6c6): undefined reference to `glLightfv@12'
    shader.o:shader.cpp:(.text+0x6ff): undefined reference to `glLightModelfv@8'
    shader.o:shader.cpp:(.text+0x710): undefined reference to `_imp____glewUseProgramObjectARB'
    shader.o:shader.cpp:(.text+0x725): undefined reference to `_imp____glewUniform3f'
    shader.o:shader.cpp:(.text+0x757): undefined reference to `_imp____glewUniform3f'
    shader.o:shader.cpp:(.text+0x789): undefined reference to `_imp____glewUniform1f'
    shader.o:shader.cpp:(.text+0x7a4): undefined reference to `_imp____glewActiveTextureARB'
    shader.o:shader.cpp:(.text+0x7c5): undefined reference to `glBindTexture@8'
    shader.o:shader.cpp:(.text+0x7cd): undefined reference to `_imp____glewActiveTextureARB'
    shader.o:shader.cpp:(.text+0x7ee): undefined reference to `glBindTexture@8'
    shader.o:shader.cpp:(.text+0x7f6): undefined reference to `_imp____glewActiveTextureARB'
    shader.o:shader.cpp:(.text+0x817): undefined reference to `glBindTexture@8'
    shader.o:shader.cpp:(.text+0x827): undefined reference to `_imp____glewUseProgramObjectARB'
    shader.o:shader.cpp:(.text+0xb3c): undefined reference to `glGetFloatv@8'
    shader.o:shader.cpp:(.text+0xb55): undefined reference to `glGenTextures@8'
    shader.o:shader.cpp:(.text+0xb6e): undefined reference to `glBindTexture@8'
    shader.o:shader.cpp:(.text+0xbce): undefined reference to `glTexImage2D@36'
    shader.o:shader.cpp:(.text+0xc1e): undefined reference to `gluBuild2DMipmaps@28'
    shader.o:shader.cpp:(.text+0xc3d): undefined reference to `glTexParameteri@12'
    shader.o:shader.cpp:(.text+0xc5c): undefined reference to `glTexParameteri@12'
    shader.o:shader.cpp:(.text+0xc7b): undefined reference to `glTexParameteri@12'
    shader.o:shader.cpp:(.text+0xc9a): undefined reference to `glTexParameteri@12'
    shader.o:shader.cpp:(.text+0xcbb): undefined reference to `glTexParameterf@12'
    shader.o:shader.cpp:(.text+0xcd2): undefined reference to `glBindTexture@8'
    shader.o:shader.cpp:(.text+0xf42): undefined reference to `glGenTextures@8'
    shader.o:shader.cpp:(.text+0xf5b): undefined reference to `glBindTexture@8'
    shader.o:shader.cpp:(.text+0xfac): undefined reference to `glTexImage2D@36'
    shader.o:shader.cpp:(.text+0xfcb): undefined reference to `glTexParameteri@12'
    shader.o:shader.cpp:(.text+0xfea): undefined reference to `glTexParameteri@12'
    shader.o:shader.cpp:(.text+0x1009): undefined reference to `glTexParameteri@12'
    shader.o:shader.cpp:(.text+0x1028): undefined reference to `glTexParameteri@12'
    shader.o:shader.cpp:(.text+0x103f): undefined reference to `glBindTexture@8'
    texture.o:texture.cpp:(.text+0x2ff): undefined reference to `glDeleteTextures@8'
    texture.o:texture.cpp:(.text+0x321): undefined reference to `glDeleteTextures@8'
    texture.o:texture.cpp:(.text+0x343): undefined reference to `glDeleteTextures@8'
    texture.o:texture.cpp:(.text+0x369): undefined reference to `glDeleteTextures@8'
    texture.o:texture.cpp:(.text+0x38b): undefined reference to `glDeleteTextures@8'
    texture.o:texture.cpp:(.text+0x3ad): more undefined references to `glDeleteTextures@8' follow
    d:/lib/MinGW/bin/../lib/gcc/mingw32/3.4.5/../../../libmingw32.a(main.o):main.c:(.text+0x104): undefined reference to `WinMain@16'
    collect2: ld returned 1 exit status
    make: *** [start] Error 1
    make: Leaving directory `/d/Eigene Dateien/cpp/gl/tloader'
    

    Hier die Makefile:

    OBJ := main.o mesh.o shader.o texture.o vector.o vector2.o
    MINGW_BIN := "D:\lib\MinGW\bin\g++.exe" 
    OUTPUT_BIN := "tloader.exe"
    MAKEFLAGS += -swr
    
    all: start
    
    start: $(OBJ)
    	@echo "......................................................................"
    	@echo "linking ..."
    	$(MINGW_BIN) -ID:\lib\MinGW\include -LD:\lib\MinGW\lib  -lopengl32 -lglu32 -lglew32 -lSDL -mwindows -Wall -o $(OUTPUT_BIN) $(OBJ)
    
    %.o: %.cpp *.h
    	@echo "-----------------------------------------------------------------------"
    	@echo "compiling $< ..."
    	$(MINGW_BIN) -ID:\lib\MinGW\include -LD:\lib\MinGW\lib -mwindows -Wall -c -o $@ $<
    
    clean:
    	@rm -fv *.o
    
    distclean: clean
    	@rm -fv $(OUTPUT_BIN)
    


  • du hast vergessen, eine lib zu linken(die, die die angenörgelten fkt implementiert)...



  • und welche wäre das?
    Die SDL-Funktionen funktionieren ja auch nicht.



  • bump



  • Da brauchst du OpenGL Libs. Welche musst du halt schauen, aber so wies aussieht fehlen die bereits die Grundlegenden. Lad dir doch mal ein aktuelles SDK runter und Link die Libs dort.



  • drakon schrieb:

    Da brauchst du OpenGL Libs. Welche musst du halt schauen, aber so wies aussieht fehlen die bereits die Grundlegenden. Lad dir doch mal ein aktuelles SDK runter und Link die Libs dort.

    Es gibt kein offizielles OpenGL-SDK. Er muss lediglich die glew32.lib und evtl die opengl32.lib linken die er ja aus dem glew-Paket hat, weil ich ihm das in dem anderen Thread zum selben Thema empfohlen habe.



  • Scorcher24 schrieb:

    Es gibt kein offizielles OpenGL-SDK.

    Jup, dachte, dass irgendwie schon, dass ich den Begriff so nie gesehen habe. Aber ich meinte schon die libs + halt noch Doku, wenn er die nicht auch hat. Aber als SDK kann man das wahrscheinlich nicht direkt bezeichnen. (fehlern ja noch die Beispiele.)


Anmelden zum Antworten