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

11.12.2011, 01:50

Probleme SFML libraries

Ich versuche zurzeit das erste Turtorial Programm von SFML zu kompiliren womit ich bisher allerding wenig erfolg hatte.

Im Forum habe ich einige Threads gefunden die dieses Problem behandel aber mir trotzdem nicht weiterhelfen konnten.
Das kompiliren zeigt mir keine Fehler an aber wenn ich das Programm Starten will kommt der fehler "fatal error LNK1104: Datei "sfml-system.lib" kann nicht geöffnet werden."

Ich habe ich habe die lib schon mit und ohne "-d" gelinkt und versucht mal alle lib's die in den anderen threads erwähnt wurden zu linken was auch nicht funktioniert hat.
Beim Preprozessor ist SFML_Dynamic hinzugefügt SDK ist auch runtergeladen und die libs und header habe ich auch alle so Kopiert wie im turtorial beschrieben.

Was mache ich Falsch?

(sollten sich Rechtschreibfehler bei mir eingeschlichen haben bitte ich um Entschulding)

Fred

Supermoderator

Beiträge: 2 121

Beruf: Softwareentwickler

  • Private Nachricht senden

2

11.12.2011, 05:18

Hast du die SFML-Verzeichnisse auch deinem Projekt bekannt gemacht?
Unter VC++2010: Project->Properties->Configuration Properties->VC++ Directories

3

11.12.2011, 11:13

Nein aber ich habe die lib's und include's von SFML die ich runtergeladen habe in die inlude's und lib's von VC++ kopiert.
Habe sie jetz auch bekannt gemacht kommt immer noch der selbe Fehler.
Oder meinst du was anderers?

Geheim

Treue Seele

Beiträge: 202

Wohnort: Salzburg

Beruf: Schüler

  • Private Nachricht senden

4

11.12.2011, 12:31

Ich glaub ich weiß was du meinst: Du musst unter deinem SFML Ordner (ich denke mal du hast SFML-1.6) den Ordner lib aufmachen und dort alle .dlls kopieren und sie in deinen Projektordner einfügen. Also wenn du mit Ton und mit Netzwerk arbeitest brauchst du alle, sonnst reichen: sfml-graphics-d.dll ; sfml-window-d.dll ; sfml-system-d.dll

Also die 3 brauchst du in jedem Projekt (wenn du Ton verwendest oder Netzwerk dann auch die anderen 2) einfach kopieren und in deinen Projektordner reingeben, dann müsste es klappen?!

Gruß Geheim!

5

11.12.2011, 12:37

Ähm...
Hast du die SFML auch neu erstellt?
Welche IDE benutzt du denn? MVC++2010 oder MVC++2008 oder was ganz anderes wie Code::Blocks oder Dev-C++, ...?
Du musst die SFML nun eben deiner Version 'anpassen'.
Sie wird mit MVC++2008 erstellt, wirklich funktionieren ohne Änderungen würde sie in den meisten Fällen MVC++2008.
Wenn es dann nicht geht, dann linke die statisch. Je nachdem ob du nicht doch SFML 2.0 nehmen möchtest, denn die geht nach neuem Kompilieren (bei mir) nur statisch. :rolleyes:

MfG
Check

6

11.12.2011, 12:55

Ich hab jetz alles was unter lib's in SFML 1.6 war in abwechselnd einmal den "ProjektName" Ordner kopiert dan in den Unterordner "ProjektName" und dan in den Unterordner "Debug" immer der selbe error.

Ich habs bei VC++ 2008 und VC++ 2010 Probiert und ich hab die lib's in allen möglichen formen also .lib -d.lib und -d-s.lib gelinkt und was meinst du mit SFML neu erstellen?

Geheim

Treue Seele

Beiträge: 202

Wohnort: Salzburg

Beruf: Schüler

  • Private Nachricht senden

7

11.12.2011, 13:18

Ich kanns dir Schritt für Schritt bei Visual C++ 2008 Express erklären:
1) Du hast ein Projekt erstellt: Dann Rechtsklick auf deinen Projektnamen und auf Eigenschaften
2) Du gehst zu C/C++ und dann auf Präprozessor: Da schreibst du vor "WIN32;" SFML_DYNAMIC; also steht dann da: SFML_DYNAMIC;WIN32;_DEBUG;_CONSOLE
3) Du gehst auf Linker und dann auf Eingabe und schreibst in das erste Feld (Zusätzliche Abhängigkeiten): sfml-system-d.lib sfml-graphics-d.lib sfml-window-d.lib (wenn du Ton und/oder Netzwerk verwendest kommen da noch die anderen hin)
4) Für die Release Version musst du Oben links wo steht "Konfiguration: Debug" auf Release wechseln und dann brauchst du auch dasselbe wie vorher nur statt dem d ein s also: sfml-graphics-s.lib sfml-window-s.lib sfml-main.lib sfml-system-s.lib sfml-audio-s.lib Dann auf OK drücken ;)
5)* Das musst du nur 1 einziges mal machen, den Rest bei jedem neuen Projekt*: Oben unter Extras -> Optionen -> dann raufscrollen -> Projekte und Projektmappen -> VC++-Verzeichnisse -> jetzt rechts oben steht: "Verzeichnisse anzeigen für:" Dann wählst du Includedatein aus, drückst auf den kleinen Ordner dann auf die 3 Punkte ... Und wählst den include Ordner von SFML-1.6 aus! Und dasselbe für Bibliotheksdatein und da wählst du den lib Ordner aus!
6) Du brauchst wie ich vorher schon gepostet hab die dlls und gibst sie in deinen Projektordner. Kannst sie auch dann in den Debugordner reinlegen und von dort die exe starten aber das musst du nicht! (Für die Release Version brauchst du keine dlls mehr, die sind dann glaub ich schon in der exe drinnen, bin mir aber nicht ganz sicher)

Ich hoffe es klappt diesesmal?

8

11.12.2011, 13:28

Hallo?
Hast die die SFML schon mal neu erstellt? :pinch:

MfG
Check

9

11.12.2011, 14:17

Hab nochmal neues Projekt gemacht und alles so gemacht wie du beschrieben hast (hoff ich zumindest), bekommeaber immer noch den selben error.
Mir ist aber Aufgefallen das die libraries den Dateityp A-Datei habe ist das normal?
Ich habe auch das Release ausprobiert da bekomme ich dan halt "fatal error LNK1181: cannot open input file 'sfml-graphics-s.lib'".

@Checkmateing

Wie schon oben gefragt was meinst du mit "Hast die die SFML schon mal neu erstellt?" ?( ich bezweifle stark das du damit kompiliren meinst ;)

10

11.12.2011, 14:29

Dann ist dein Zweifel zum Wohl oder Übel hier fehl am Platz!
Dann mach jetzt das was ich gesagt habe und kompiliere die SFML neu!
Eine Anleitung ist hier zu finden. Für welche, die es interaktiver mögen, einfach mal hier klicken.
Lösche den Ordner deiner SFML und lade ihn neu herunter. Dann machst du genau das was dort steht bzw. dargestellt wird. Diese ganze Einbindungsdiskussion hätte man sich sparen können.
Naja, falls es dann immer noch nicht geht und du wirklich genau das, was oben erwähnt ist, getan hast, dann frage noch einmal nach.

MfG
Check

Werbeanzeige