Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

1

23.05.2012, 21:46

fatal error LNK1120: 5 nicht aufgelöste externe Verweise

Hi,

ich versuche mich gerade daran mir OpenGL beizubringen, erhalte jedoch schon beim Kompilieren des Programms folgende Fehlermeldung:

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
1>------ Erstellen gestartet: Projekt: Tutorial, Konfiguration: Debug Win32 ------ 
1>Der Buildvorgang wurde am 23.05.2012 21:41:19 gestartet. 
1>InitializeBuildStatus: 
1> Aktualisieren des Timestamps von "Debug\Tutorial.unsuccessfulbuild". 
1>ClCompile: 
1> Alle Ausgaben sind aktuell. 
1>OpenGL_01.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "_glfwSwapBuffers" in Funktion "_main". 
1>OpenGL_01.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "_glfwGetWindowParam" in Funktion "_main". 
1>OpenGL_01.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "_glfwOpenWindow" in Funktion "_main". 
1>OpenGL_01.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "_glfwOpenWindowHint" in Funktion "_main". 
1>OpenGL_01.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "_glfwInit" in Funktion "_main". 
1>C:\Users\Sami\Documents\OpenGl\Tutorial_01\Tutorial\Debug\Tutorial.exe : fatal error LNK1120: 5 nicht aufgelöste externe Verweise. 
1> 
1>Fehler beim Erstellen 
1> 
1>Verstrichene Zeit 00:00:00.31 
========== Erstellen: 0 erfolgreich, Fehler bei 1, 0 aktuell, 0 übersprungen ==========



Das programm ist eigentlich auch nur total plump:

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#define GLEW_NO_GLU 
#define GLFW_NO_GLU 
#include <GL/glew.h> 
#include "GL\glfw.h" 
int main() { 
glfwInit(); 
glfwOpenWindowHint(GLFW_OPENGL_VERSION_MAJOR,3); 
glfwOpenWindowHint(GLFW_OPENGL_VERSION_MINOR,30); 
glfwOpenWindowHint(GLFW_OPENGL_PROFILE,GLFW_OPENGL_CORE_PROFILE); 
glfwOpenWindowHint(GLFW_OPENGL_FORWARD_COMPAT, GL_TRUE); 
glfwOpenWindow(800,600,0,0,0,8,8,8,GLFW_WINDOW);
while(glfwGetWindowParam(GLFW_OPENED)) { 
glfwSwapBuffers(); 
} 
}

Weis jemand wo der Fehler liegt?

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

2

23.05.2012, 22:10

Du hast wohl vergessen die GLFW.lib zu linken?

3

23.05.2012, 23:33

hab ich eigentlich schon überprüft. hab als anhang nen screenshot von meinen libs.
»Sam94« hat folgendes Bild angehängt:
  • libs.png

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

4

23.05.2012, 23:43

Nur weil die lib in irgendeinen Ordner liegt, heißt das noch lange nicht dass sie gelinked wird. Du musst sie schon auch in den Projekteigenschaften eintragen...

Btw: Das Visual C++ Verzeichnis ist eigentlich nicht wirklich ein Ort an den du einfach irgendwelche libs kopieren solltest.

5

24.05.2012, 00:01

habs eigentlich auch zu den bibliotheksverzeichnissen.
»Sam94« hat folgendes Bild angehängt:
  • libs.png

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

6

24.05.2012, 00:06

Damit sagst du dem Linker nur, wo überall er Libraries finden kann, nicht welche Libraries er verwenden soll. Die fragliche Einstellung findest du in den gleichen Eigenschaften unter Linker > Zusätzliche Abhängigkeiten. Dort schreibst du GLFW.lib rein. Und dann tu bitte den GLFW Kram wieder aus dem VC Verzeichnisch löschen und nie wieder einfach so irgendwas dort reinkopieren. Pack GLFW irgendwo in ein eigenes Verzeichnis und trag dieses Verzeichnis genau dort in die Bibliotheksverzeichnisse ein ;)

7

24.05.2012, 00:36

danke :) habs jetzt in nen andren ordner und alles angepasst.

jetzt kommt allerdings ne neue fehlermeldung :dash:

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
1>------ Erstellen gestartet: Projekt: Tutorial, Konfiguration: Debug Win32 ------ 
1>Der Buildvorgang wurde am 24.05.2012 00:31:29 gestartet. 
1>InitializeBuildStatus: 
1> Aktualisieren des Timestamps von "Debug\Tutorial.unsuccessfulbuild". 
1>ClCompile: 
1> Alle Ausgaben sind aktuell. 
1>LINK : warning LNK4098: Standardbibliothek "MSVCRT" steht in Konflikt mit anderen Bibliotheken; /NODEFAULTLIB:Bibliothek verwenden. 
1>GLFW.lib(window.obj) : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "__imp__glClear@4" in Funktion "_glfwOpenWindow". 
1>GLFW.lib(win32_window.obj) : error LNK2001: Nicht aufgelöstes externes Symbol "__imp__glClear@4". 
1>GLFW.lib(win32_window.obj) : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "__imp__wglGetProcAddress@4" in Funktion "_initWGLExtensions". 
1>GLFW.lib(win32_glext.obj) : error LNK2001: Nicht aufgelöstes externes Symbol "__imp__wglGetProcAddress@4". 
1>GLFW.lib(win32_window.obj) : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "__imp__wglMakeCurrent@8" in Funktion "_createWindow". 
1>GLFW.lib(win32_window.obj) : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "__imp__wglCreateContext@4" in Funktion "_createContext". 
1>GLFW.lib(win32_window.obj) : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "__imp__wglDeleteContext@4" in Funktion "_destroyWindow". 
1>GLFW.lib(win32_window.obj) : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "__imp__glClearColor@16" in Funktion "__glfwPlatformSetWindowSize". 
1>GLFW.lib(win32_window.obj) : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "__imp__glGetFloatv@8" in Funktion "__glfwPlatformSetWindowSize". 
1>GLFW.lib(win32_window.obj) : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "__imp__glGetIntegerv@8" in Funktion "__glfwPlatformSetWindowSize". 
1>GLFW.lib(glext.obj) : error LNK2001: Nicht aufgelöstes externes Symbol "__imp__glGetIntegerv@8". 
1>GLFW.lib(glext.obj) : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "__imp__glGetString@4" in Funktion "__glfwParseGLVersion". 
1>C:\Users\Sami\Documents\OpenGl\Tutorial_01\Tutorial\Debug\Tutorial.exe : fatal error LNK1120: 9 nicht aufgelöste externe Verweise. 
1> 
1>Fehler beim Erstellen 
1> 
1>Verstrichene Zeit 00:00:00.37 
========== Erstellen: 0 erfolgreich, Fehler bei 1, 0 aktuell, 0 übersprungen ==========

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

8

24.05.2012, 00:39

Du hast offenbar auch vergessen opengl32.lib zu linken ;)

9

24.05.2012, 14:13

ok, jetzt klappt alles :)

vielen dank noch mal.

muss ich die libs eigentlich bei jeden Projkt neu einbinden oder sind die für alle gespeichert? kenn mich mit solchen sachen noch nicht so gut aus ;)

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

10

24.05.2012, 15:01

Jedes Projekt bedarf anderer Libs, daher musst Du die richtigen bei jedem Projekt neu einbinden.
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

Werbeanzeige