Du bist nicht angemeldet.

Werbeanzeige

moritz31

Treue Seele

  • »moritz31« ist der Autor dieses Themas

Beiträge: 259

Wohnort: Hessen

Beruf: Student

  • Private Nachricht senden

1

07.05.2011, 00:57

SFML spuckt mal wieder Fehler aus

Hi Leute,
ich bins mal wieder,
nachhdem mein kompilieren im Debug Modus schön funktioniert hat wollte ich es eben in die Release kompilieren.
Dabei habe ich wieder Include und Lib Pfade angegeben, und natürlich auch drank gedacht alles zu Linken.

Quellcode

1
2
3
4
5
6
sfml-main.lib
sfml-graphics-s.lib
sfml-audio-s.lib
sfml-system-s.lib
sfml-network-s.lib
sfml-window-s.lib


jedoch spuckt mir vs2010 trotzdem 38 nicht aufgelöste verweise bei sfml-window-s.lib aus.

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
26
27
28
29
30
31
32
33
34
35
36
37
38
1>sfml-window-s.lib(VideoModeSupport.obj) : error LNK2001: Nicht aufgelöstes externes Symbol "__imp__EnumDisplaySettingsA@12".
1>sfml-window-s.lib(WindowImplWin32.obj) : error LNK2001: Nicht aufgelöstes externes Symbol "__imp__TranslateMessage@4".
1>sfml-window-s.lib(WindowImplWin32.obj) : error LNK2001: Nicht aufgelöstes externes Symbol "__imp__DispatchMessageA@4".
1>sfml-window-s.lib(WindowImplWin32.obj) : error LNK2001: Nicht aufgelöstes externes Symbol "__imp__PeekMessageA@20".
1>sfml-window-s.lib(WindowImplWin32.obj) : error LNK2001: Nicht aufgelöstes externes Symbol "__imp__SwapBuffers@4".
1>sfml-window-s.lib(WindowImplWin32.obj) : error LNK2001: Nicht aufgelöstes externes Symbol "__imp__SetCursor@4".
1>sfml-window-s.lib(WindowImplWin32.obj) : error LNK2001: Nicht aufgelöstes externes Symbol "__imp__LoadCursorA@8".
1>sfml-window-s.lib(WindowImplWin32.obj) : error LNK2001: Nicht aufgelöstes externes Symbol "__imp__SetCursorPos@8".
1>sfml-window-s.lib(WindowImplWin32.obj) : error LNK2001: Nicht aufgelöstes externes Symbol "__imp__ClientToScreen@8".
1>sfml-window-s.lib(WindowImplWin32.obj) : error LNK2001: Nicht aufgelöstes externes Symbol "__imp__SetWindowPos@28".
1>sfml-window-s.lib(WindowImplWin32.obj) : error LNK2001: Nicht aufgelöstes externes Symbol "__imp__AdjustWindowRect@12".
1>sfml-window-s.lib(WindowImplWin32.obj) : error LNK2001: Nicht aufgelöstes externes Symbol "__imp__GetWindowLongA@8".
1>sfml-window-s.lib(WindowImplWin32.obj) : error LNK2001: Nicht aufgelöstes externes Symbol "__imp__ShowWindow@8".
1>sfml-window-s.lib(WindowImplWin32.obj) : error LNK2001: Nicht aufgelöstes externes Symbol "__imp__ReleaseDC@8".
1>sfml-window-s.lib(WindowImplWin32.obj) : error LNK2001: Nicht aufgelöstes externes Symbol "__imp__ChangeDisplaySettingsA@8".
1>sfml-window-s.lib(WindowImplWin32.obj) : error LNK2001: Nicht aufgelöstes externes Symbol "__imp__MapVirtualKeyA@8".
1>sfml-window-s.lib(WindowImplWin32.obj) : error LNK2001: Nicht aufgelöstes externes Symbol "__imp__SetWindowLongA@12".
1>sfml-window-s.lib(WindowImplWin32.obj) : error LNK2001: Nicht aufgelöstes externes Symbol "__imp__UnregisterClassA@8".
1>sfml-window-s.lib(WindowImplWin32.obj) : error LNK2001: Nicht aufgelöstes externes Symbol "__imp__UnregisterClassW@8".
1>sfml-window-s.lib(WindowImplWin32.obj) : error LNK2001: Nicht aufgelöstes externes Symbol "__imp__DestroyWindow@4".
1>sfml-window-s.lib(WindowImplWin32.obj) : error LNK2001: Nicht aufgelöstes externes Symbol "__imp__DestroyIcon@4".
1>sfml-window-s.lib(WindowImplWin32.obj) : error LNK2001: Nicht aufgelöstes externes Symbol "__imp__TrackMouseEvent@4".
1>sfml-window-s.lib(WindowImplWin32.obj) : error LNK2001: Nicht aufgelöstes externes Symbol "__imp__GetAsyncKeyState@4".
1>sfml-window-s.lib(WindowImplWin32.obj) : error LNK2001: Nicht aufgelöstes externes Symbol "__imp__GetClientRect@8".
1>sfml-window-s.lib(WindowImplWin32.obj) : error LNK2001: Nicht aufgelöstes externes Symbol "__imp__DefWindowProcA@16".
1>sfml-window-s.lib(WindowImplWin32.obj) : error LNK2001: Nicht aufgelöstes externes Symbol "__imp__DefWindowProcW@16".
1>sfml-window-s.lib(WindowImplWin32.obj) : error LNK2001: Nicht aufgelöstes externes Symbol "__imp__CallWindowProcA@20".
1>sfml-window-s.lib(WindowImplWin32.obj) : error LNK2001: Nicht aufgelöstes externes Symbol "__imp__RegisterClassA@4".
1>sfml-window-s.lib(WindowImplWin32.obj) : error LNK2001: Nicht aufgelöstes externes Symbol "__imp__RegisterClassW@4".
1>sfml-window-s.lib(WindowImplWin32.obj) : error LNK2001: Nicht aufgelöstes externes Symbol "__imp__SetPixelFormat@12".
1>sfml-window-s.lib(WindowImplWin32.obj) : error LNK2001: Nicht aufgelöstes externes Symbol "__imp__ChoosePixelFormat@8".
1>sfml-window-s.lib(WindowImplWin32.obj) : error LNK2001: Nicht aufgelöstes externes Symbol "__imp__DescribePixelFormat@16".
1>sfml-window-s.lib(WindowImplWin32.obj) : error LNK2001: Nicht aufgelöstes externes Symbol "__imp__GetDC@4".
1>sfml-window-s.lib(WindowImplWin32.obj) : error LNK2001: Nicht aufgelöstes externes Symbol "__imp__CreateWindowExA@48".
1>sfml-window-s.lib(WindowImplWin32.obj) : error LNK2001: Nicht aufgelöstes externes Symbol "__imp__CreateWindowExW@48".
1>sfml-window-s.lib(WindowImplWin32.obj) : error LNK2001: Nicht aufgelöstes externes Symbol "__imp__GetDeviceCaps@8".
1>sfml-window-s.lib(WindowImplWin32.obj) : error LNK2001: Nicht aufgelöstes externes Symbol "__imp__SendMessageA@16".
1>sfml-window-s.lib(WindowImplWin32.obj) : error LNK2001: Nicht aufgelöstes externes Symbol "__imp__CreateIcon@28".


wäre froh über hilfe

gruß moritz

drakon

Supermoderator

Beiträge: 6 529

Wohnort: Schweiz

Beruf: Entrepreneur

  • Private Nachricht senden

2

07.05.2011, 01:03

Da fehlen keine SFML Bibliotheken, sondern Windows. Vielleicht musst du aber auch nur spezielle Release Libs linken.

moritz31

Treue Seele

  • »moritz31« ist der Autor dieses Themas

Beiträge: 259

Wohnort: Hessen

Beruf: Student

  • Private Nachricht senden

3

07.05.2011, 01:08

kannst du mir vielleicht ma erklären wie man die dynamsich linkt?
versteh des nämlich net

Also ich habe das so verstanden, dass ich anstatt sfml-graphics-s.lib z.B. sfml-graphics.dll linken muss
und dann noch SFML_DYNAMIC eintragen muss

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »moritz31« (07.05.2011, 01:15)


Sylence

Community-Fossil

Beiträge: 1 670

Beruf: Softwareentwickler

  • Private Nachricht senden

4

07.05.2011, 02:50

anstatt sfml-graphics-s.lib z.B. sfml-graphics.dll linken


Merke: eine dll wird niemals gelinkt. Iirc hat SFML die ganzen libs einmal mit -s (static) im namen und einmal ohne. Die ohne sind die dynamischen, die du linken willst
Software documentation is like sex. If it's good you want more, if it's bad it's better than nothing.

moritz31

Treue Seele

  • »moritz31« ist der Autor dieses Themas

Beiträge: 259

Wohnort: Hessen

Beruf: Student

  • Private Nachricht senden

5

07.05.2011, 11:23

also bei mir gibt es nur die main ohne -s
und die dll.

6

07.05.2011, 11:33

Dann solltest du die SFML mal neu erstellen und diesmal als "Debug DLL" und "Release DLL". Dann werden die entsprechenden LIBs auch erstellt.

Gruß
SaRu_

moritz31

Treue Seele

  • »moritz31« ist der Autor dieses Themas

Beiträge: 259

Wohnort: Hessen

Beruf: Student

  • Private Nachricht senden

7

07.05.2011, 11:47

also hab jetzt noch ma neu SFML runtergeladen,
selbst kompiliert, jedoch enstehen immer nur folgende dateien

sfml-window.dll
sfml-window-d.dll
sfml-window-s.lib
sfml-window-d.lib
sfml-window-s-d.lib

8

07.05.2011, 11:55

Ja dann hast du doch was du willst oder nicht?

sfml-window-s-d.lib (statische LIB für Debug)
sfml-window-s.lib (statische LIB für Release)

sfml-window-d.lib (dynamische LIB für Debug)
sfml-window.lib (dynamische LIB für Release) <-- die hier hast du nicht genannt, müsste aber trotzdem vorhanden sein.

Wenn du die LIBs hast, dann linkst du einfach die dynamischen mit deinem Projekt, setzt das bereits oben von dir angesprochene SFML_DYNAMIC und kopierst die ganzen DLLs in den Projektordner. Dann sollte alles funktionieren.

Gruß
SaRu_

moritz31

Treue Seele

  • »moritz31« ist der Autor dieses Themas

Beiträge: 259

Wohnort: Hessen

Beruf: Student

  • Private Nachricht senden

9

07.05.2011, 12:50

nein das
sfml-window.lib ist nicht vorhanden, weiß der geier warum
und wenn ich statisch linke kommen die angesprochenen Fehlermeldungen von oben.

:D ihrgendwie mag SFML mich nicht^^

10

07.05.2011, 14:02

Beachte bitte drakons Beitrag.

Hier noch mal ausführlich:
Hast du beim statischen Linken denn auch unter Zusätzliche Abhängigkeiten neben den SFML Libs auch das hier drin: %(AdditionalDependencies)
Wenn du die Zusätzlichen Abhänigkeiten Bearbeitest sollten auch folgende Libs zu finden sein, entweder explizit eingetragen oder aber unter "Vererbte Werte":

kernel32.lib
user32.lib
gdi32.lib
winspool.lib
comdlg32.lib
advapi32.lib
shell32.lib
ole32.lib
oleaut32.lib
uuid.lib
odbc32.lib
odbccp32.lib

Dann sollte das statische Linken eigentlich funktionieren.

Was die fehlende Lib fürs dynamische Linken angeht, so brauchst du diese vorerst nicht. Für die Debug-Konfiguration benötigst du ja nur die Libs, die ein "-d" und kein "-s" im Namen haben. Die fehlende Lib brauchst du allerdings fürs Release. Eventuell SFML mal selbst erstellen und nicht downloaden. ;)

Gruß
SaRu_

Werbeanzeige