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

26.05.2013, 14:36

fatal error LNK1120 bei linken von glfw

Hi,
ich wollte vor kurzem mit OpenGL anfangen und habe gelesen, dass für die Entwicklung eines kleinen Spiels GLFW am besten wäre. Jedoch bekomme ich stets folgenden Fehler wenn ich es benutzen will:

C-/C++-Quelltext

1
2
3
4
5
6
7
1>------ Erstellen gestartet: Projekt: Shooter, Konfiguration: Debug Win32 ------
1>Main.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "_glfwSwapBuffers" in Funktion "_main".
1>Main.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "_glfwGetWindowParam" in Funktion "_main".
1>Main.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "_glfwOpenWindow" in Funktion "_main".
1>Main.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "_glfwInit" in Funktion "_main".
1>C:\Users\Sami\Cpp\Game\Shooter\Debug\Shooter.exe : fatal error LNK1120: 4 nicht aufgelöste externe Verweise.
========== Erstellen: 0 erfolgreich, Fehler bei 1, 0 aktuell, 0 übersprungen ==========

Meines Wissens nach habe ich jedoch alles korrekt gelinked.

Tobiking

1x Rätselkönig

  • Private Nachricht senden

2

26.05.2013, 14:57

Die GLFW.lib und die GLFWDLL.lib sind Alternativen, je nachdem ob du statisch oder dynamisch linken willst.Ich vermute das gibt einen Konflikt wenn man beides drin hat. Genaueres zum Linken steht aber auch in der Readme von GLFW.

3

26.05.2013, 15:55

Ich hab jetzt die GLFWDLL.lib raus, jedoch kommt genau der selbe Fehler.
Die Readme hab ich eigentlich genau befolgt, deswegen weis ich auch nicht woran der Fehler liegen könnte.

patrick246

Treue Seele

Beiträge: 328

Wohnort: nahe Heilbronn/BW

Beruf: TG Profil Informatik-Schüler

  • Private Nachricht senden

4

26.05.2013, 23:17

Muss vielleicht noch eine Präprozessordefinition definiert werden, wie zum Beispiel bei SFML SFML_STATIC?

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

5

27.05.2013, 06:51

Die GLFW.lib und die GLFWDLL.lib sind Alternativen,(...) Ich vermute das gibt einen Konflikt wenn man beides drin hat.
Generell mag das stimmen, führt aber nicht zu seinem Problem. Sonst stünde da, dass die Funktion schon gelinkt wurde und nicht, dass sie überhaupt nicht gefunden werden kann. Bitte lest doch Linker-Fehler wenigstens. Die sind wirklich nicht so schwer zu verstehen.

Muss vielleicht noch eine Präprozessordefinition definiert werden, wie zum Beispiel bei SFML SFML_STATIC?
Unwahrscheinlich. Der Präprozessor hat für eine fertig kompilierte Lib nämlich 0 Auswirkungen. Sie kann aber relevant sein beim Erzeugen der Lib.
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]

Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von »BlueCobold« (27.05.2013, 07:00)


H5::

Treue Seele

Beiträge: 368

Wohnort: Kiel

  • Private Nachricht senden

6

27.05.2013, 08:11

Dein Problem kann im Name-Mangling liegen. Ist dein GLFW nicht mit dem gleichen Compiler wie deinem erstellt worden so sind die Symbolnamen eventuell anders und der Linker kann sie nicht finden.

Dies kann auch passieren wenn deine Lib mit einem anderen Profile erstellt wurde. (X64 und win32 da unterscheidet sich auch das Name-Mangling ).

Besonders das letzte passiert ganz schnell mal wenn man ein neues Projekt erstellt und vergisst das Profil anzupassen.

Visual C++ name mangling
64bit name mangling for c++
:love: := Go;

Beiträge: 1 223

Wohnort: Deutschland Bayern

Beruf: Schüler

  • Private Nachricht senden

7

28.05.2013, 00:10

Da GLFW eine C-Bibliothek ist, ist "Name-Mangling" sehr unwahrscheinlich.
Unabhänig davon würde ich übrigens schon zu GLFW3 raten, das ist wesentlich fortschrittlicher.

8

28.05.2013, 00:15

Ich habe jetzt versucht die lib selbst zu kompilieren, aber das hat es noch schlimmer gemacht :/

C-/C++-Quelltext

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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
1>------ Erstellen gestartet: Projekt: Shooter, Konfiguration: Debug Win32 ------
1>LINK : warning LNK4098: Standardbibliothek "MSVCRT" steht in Konflikt mit anderen Bibliotheken; /NODEFAULTLIB:Bibliothek verwenden.
1>GLFW.lib(win32_window.obj) : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "__imp__SystemParametersInfoA@16" in Funktion "_setMinMaxAnimations".
1>GLFW.lib(win32_init.obj) : error LNK2001: Nicht aufgelöstes externes Symbol "__imp__SystemParametersInfoA@16".
1>GLFW.lib(win32_enable.obj) : error LNK2001: Nicht aufgelöstes externes Symbol "__imp__SystemParametersInfoA@16".
1>GLFW.lib(win32_window.obj) : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "__imp__ShowWindow@8" in Funktion "_setForegroundWindow".
1>GLFW.lib(win32_window.obj) : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "__imp__GetForegroundWindow@0" in Funktion "_setForegroundWindow".
1>GLFW.lib(win32_window.obj) : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "__imp__SetForegroundWindow@4" in Funktion "_setForegroundWindow".
1>GLFW.lib(win32_window.obj) : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "__imp__BringWindowToTop@4" in Funktion "_setForegroundWindow".
1>GLFW.lib(win32_window.obj) : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "__imp__CharUpperA@4" in Funktion "_translateKey".
1>GLFW.lib(win32_window.obj) : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "__imp__CharUpperW@4" in Funktion "_translateKey".
1>GLFW.lib(win32_window.obj) : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "__imp__PeekMessageA@20" in Funktion "_translateKey".
1>GLFW.lib(win32_window.obj) : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "__imp__GetMessageTime@0" in Funktion "_translateKey".
1>GLFW.lib(win32_window.obj) : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "__imp__MapVirtualKeyA@8" in Funktion "_translateKey".
1>GLFW.lib(win32_window.obj) : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "__imp__ToAscii@20" in Funktion "_translateChar".
1>GLFW.lib(win32_window.obj) : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "__imp__ToUnicode@24" in Funktion "_translateChar".
1>GLFW.lib(win32_window.obj) : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "__imp__GetKeyboardState@4" in Funktion "_translateChar".
1>GLFW.lib(win32_window.obj) : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "__imp__ReleaseCapture@0" in Funktion "_windowProc@16".
1>GLFW.lib(win32_window.obj) : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "__imp__SetCapture@4" in Funktion "_windowProc@16".
1>GLFW.lib(win32_window.obj) : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "__imp__DefWindowProcA@16" in Funktion "_windowProc@16".
1>GLFW.lib(win32_window.obj) : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "__imp__PostQuitMessage@4" in Funktion "_windowProc@16".
1>GLFW.lib(win32_window.obj) : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "__imp__ClipCursor@4" in Funktion "_windowProc@16".
1>GLFW.lib(win32_window.obj) : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "__imp__GetWindowRect@8" in Funktion "_windowProc@16".
1>GLFW.lib(win32_window.obj) : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "__imp__SetFocus@4" in Funktion "_windowProc@16".
1>GLFW.lib(win32_window.obj) : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "__imp__ChangeDisplaySettingsA@8" in Funktion "_windowProc@16".
1>GLFW.lib(win32_fullscreen.obj) : error LNK2001: Nicht aufgelöstes externes Symbol "__imp__ChangeDisplaySettingsA@8".
1>GLFW.lib(win32_window.obj) : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "__imp__AdjustWindowRectEx@16" in Funktion "_getFullWindowSize".
1>GLFW.lib(win32_window.obj) : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "__imp__RegisterClassA@4" in Funktion "_registerWindowClass".
1>GLFW.lib(win32_window.obj) : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "__imp__LoadIconA@8" in Funktion "_registerWindowClass".
1>GLFW.lib(win32_window.obj) : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "__imp__LoadCursorA@8" in Funktion "_registerWindowClass".
1>GLFW.lib(win32_window.obj) : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "__imp__ScreenToClient@8" in Funktion "_createWindow".
1>GLFW.lib(win32_window.obj) : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "__imp__GetCursorPos@4" in Funktion "_createWindow".
1>GLFW.lib(win32_window.obj) : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "__imp__GetDC@4" in Funktion "_createWindow".
1>GLFW.lib(win32_window.obj) : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "__imp__CreateWindowExA@48" in Funktion "_createWindow".
1>GLFW.lib(win32_window.obj) : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "__imp__DestroyWindow@4" in Funktion "_destroyWindow".
1>GLFW.lib(win32_window.obj) : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "__imp__ReleaseDC@8" in Funktion "_destroyWindow".
1>GLFW.lib(win32_window.obj) : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "__imp__SetWindowPos@28" in Funktion "__glfwPlatformOpenWindow".
1>GLFW.lib(win32_window.obj) : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "__imp__UnregisterClassA@8" in Funktion "__glfwPlatformCloseWindow".
1>GLFW.lib(win32_window.obj) : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "__imp__SetWindowTextA@8" in Funktion "__glfwPlatformSetWindowTitle".
1>GLFW.lib(win32_window.obj) : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "__imp__EnumDisplaySettingsA@12" in Funktion "__glfwPlatformSetWindowSize".
1>GLFW.lib(win32_fullscreen.obj) : error LNK2001: Nicht aufgelöstes externes Symbol "__imp__EnumDisplaySettingsA@12".
1>GLFW.lib(win32_window.obj) : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "__imp__ShowCursor@4" in Funktion "__glfwPlatformShowMouseCursor".
1>GLFW.lib(win32_window.obj) : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "__imp__SetCursorPos@8" in Funktion "__glfwPlatformSetMouseCursorPos".
1>GLFW.lib(win32_window.obj) : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "__imp__ClientToScreen@8" in Funktion "__glfwPlatformSetMouseCursorPos".
1>GLFW.lib(win32_window.obj) : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "__imp__GetAsyncKeyState@4" in Funktion "__glfwPlatformPollEvents".
1>GLFW.lib(win32_window.obj) : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "__imp__DispatchMessageA@4" in Funktion "__glfwPlatformPollEvents".
1>GLFW.lib(win32_window.obj) : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "__imp__WaitMessage@0" in Funktion "__glfwPlatformWaitEvents".
1>GLFW.lib(win32_enable.obj) : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "__imp__CallNextHookEx@16" in Funktion "_keyboardHook@12".
1>GLFW.lib(win32_enable.obj) : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "__imp__PostMessageA@16" in Funktion "_keyboardHook@12".
1>GLFW.lib(win32_enable.obj) : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "__imp__GetKeyState@4" in Funktion "_keyboardHook@12".
1>GLFW.lib(win32_enable.obj) : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "__imp__UnhookWindowsHookEx@4" in Funktion "__glfwPlatformEnableSystemKeys".
1>GLFW.lib(win32_enable.obj) : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "__imp__SetWindowsHookExA@16" in Funktion "__glfwPlatformDisableSystemKeys".
1>C:\Users\Sami\Cpp\Game\Shooter\Debug\Shooter.exe : fatal error LNK1120: 46 nicht aufgelöste externe Verweise.
========== Erstellen: 0 erfolgreich, Fehler bei 1, 0 aktuell, 0 übersprungen ==========

9

28.05.2013, 00:18

danke für den hinweis Spiele Programmierer,
werd mir GLFW3 mal anschaun und testen obs damit funktioniert ^^

Beiträge: 1 223

Wohnort: Deutschland Bayern

Beruf: Schüler

  • Private Nachricht senden

10

28.05.2013, 01:13

Wenn du Probleme mit dem Kompilieren hast, für GLFW3 könnte ich dir Binaries zukommen lassen.
Bei den obigen Linkerfehlern hast du vermutlich vergessen etwas zu linken oder du verwendest unterschiedliche Standardlibs.

Werbeanzeige