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

16.12.2011, 07:43

SDL In Visual Studio 2010 "SDL.obj" kann nicht geöffnet werden.

Ich versuche gerade verzweifelt ein SDL Projekt zu erstellen.

Jedes mal, wenn ich das Projekt erstellen möchte kommt folgender Fehler:

C-/C++-Quelltext

1
2
3
4
5
6
7
1>InitializeBuildStatus:
1>  Aktualisieren des Timestamps von "Release\MyGame.unsuccessfulbuild".
1>ClCompile:
1>  Framework.cpp
1>  GameObject.cpp
1>  main.cpp
1>LINK : fatal error LNK1181: Eingabedatei "SDL.obj" kann nicht geöffnet werden.


Das Include habe ich im Compiler eingefügt. (Er findet ja auch die sdl.h)
ebenso habe ich das Lib-Verzeichnis bekannt gemacht und SDL und SDLmain bei den Eingaben eingetragen

Ich habe auch schon nach der Datei SDL.obj auf der Fetplatte gesucht, konnte sie jedoch nicht finden, warum braucht er die überhaupt, er hat doch schon die vorkompilierten und gelinkten libs?

Danke schon mal für die Hilfe.

2

16.12.2011, 13:30

Jetzt klappt es....

Also ich habe es nun nach vielen Versuchen hinbekommen, der obj-Fehler ging weg, als ich die SDL.lib und SDLmain.lib kopiert habe und ihnen folgenden Namen verpasst habe:
SDL.obj
und
SDLmain.obj

Das der Linkes das akzeptiert hat mich zwar gewundert, vielleicht kann mir das ja noch jemand erklären.
Habe auch noch dieses Tutorial befolgt, worauf es jetzt läuft.
http://lazyfoo.net/SDL_tutorials/lesson0…2010e/index.php

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

3

16.12.2011, 13:41

Du hättest auch einfach die Linker-Einstellungen auf "SDL.lib" ändern können, das wäre in diesem Fall korrekter gewesen, denn es ist ja eine "lib". "*.obj"-Dateien werden üblicherweise von den GCC und G++ Compilern verwendet.
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]

4

16.12.2011, 18:01

Erst einmal Danke für die Antwort.

Das mit den obj-Dateien kann aber nicht ganz stimmen, da mir mein VisualStudio nämlich für jede cpp im Build Ordner eine obj-Datei erstellt. Daher war auch meine Idee, dass VS die SDL nicht als externen Code angesehen hat, sondern als zum Projekt gehörenden.

Auch mein g++ erzeugt mir keine .obj Dateien. Seine Zwischendateien heißen .o und die Libs habe dort alle das Scheme libNAME.a und werden einfach nur mittels -lNAME (kleinen L) eingebunden.

Daher hatte ich das auch, dass ich keine Dateiendung eingegeben habe, da ich es vom GNU anders kannte.

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

5

16.12.2011, 22:11

Stimmt, ja, das kam mir später auch erst, gcc erstellt *.o und *.a

Dennoch ist eine *.lib etwas anderes als eine *.obj und wenn es libs gibt, dann übergib die dem Linker und nenn sie nicht in *.obj um.
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]

6

16.12.2011, 22:28

Ja, das ist klar, war auch nur ein Notlösung und ich war erst einmal froh, dass ich es wieder zum Laufen bekommen habe.

Hatte mir sogar schon überlegt ob ich auf Eclipse mit g++ umsteigen soll, bei dem ich es da relativ schnell geschafft hatte alles einzubinden, da Eclipse da einfach näher am Compiler dran ist und mir die Compilerparameter beim GNU auch bekannt waren..
Letztendlich wollte ich aber mal meine neue Prof Lizenz von VS2010 ausprobieren.

Jetzt läuft auch alles mit den .libs
Hatte da wirklich nur vergessen die Dateiendung anzuhängen.

Werbeanzeige