Grafiken
-
Danke, ich hab jetzt alles installiert und den Compiler um die Speicherortinformationen für die Lib-, Bin- und Include-Dateien des SDL erweitert (Ich hab sie zwar an einem separaten Ort gespeichert, doch den Speicherort dem Compiler angegeben).
Ich hab ein einfaches Programm geschrieben, das nur die SDL initialisieren soll (hab ich bei der Dokumentation dazu gefunden):#include <iostream> #include <SDL.h> using namespace std; int SDL_Init(Uint32 flags); int main() { }Doch jetzt schon gibt der Compiler eine Fehlermeldung zurück:
[Linker error] undefined reference to `WinMain@16'
ld returned 1 exit statusIch hab auch versucht, sie in die Standard-Lib, Bin und Include-Verzeichnisse des Compilers zu verschieben und die Präprozessor-Anweisung mit "" zu schreiben. Hat nichts genützt.
Auf der Seite http://jnrdev.72dpiarmy.com/en/howtosdldevcpp/ ist eine Hilfe für meinen Compiler, ich hab eigentlich das befolgt, was dort steht (mit Ausnahme der Version, die ich heruntergeladen habe). Aber es geht nicht. Ausserdem ist die Anweisung dort nur in einem ganzen Projekt möglich, und ich will auch die Möglichkeit haben, einzelne, unabhängige Dateien zu machen. Irgendwie sollte der Linker-Fehler schon wegzukriegen sein.
-
Ich glaub du hast einfach die Referenz auf "WinMain" undefiniert gelassen.
Bye, TGGC (Das Eine, welches ist.)
-
Hehe, das ist einfach die Übersetzung... Aber was soll ich genau machen? Ich hab an den Header-Dateien nichts geändert... Muss ich noch zusätzliche Zeilen schreiben, um dem Linker etwas klar zu machen? Oder was ist die WinMain-Referenz?
-
wahrscheinlich hast du einfach kein konsolen- sondern ein win32-projekt. dadrin heisst der einsprungspunkt nicht "main" sondern "WinMain". benenn' deine main also einfach um und schon geht's.
-
Nein, bei SDL ist das alles etwas anders. Ich hab die SDL Doku nicht hier, aber wer damit arbietet solltet sich nicht nur jaben sondern auch lesen. f'`8k
AutocogitoBye, TGGC (Das Eine, welches ist.)
-
Ja ist schon gut... Als Anfänger versteht man vielleicht nicht auf Anhieb alles... Inzwischen hab ich es geschafft, es in einem Projekt ohne Fehler laufen zu lassen (ich hab den Code aus der Doku kopiert, um es auszuprobieren.)
#include "SDL.h" #include <stdio.h> int main(int argc, char *argv[]) { printf("Initializing SDL.\n"); if((SDL_Init(SDL_INIT_VIDEO|SDL_INIT_AUDIO)==-1)) { printf("Could not initialize SDL: %s.\n", SDL_GetError()); exit(-1); } printf("SDL initialized.\n"); printf("Quiting SDL.\n"); /* Shutdown all subsystems */ SDL_Quit(); printf("Quiting....\n"); exit(0); }Das lief ohne Fehler. Ich hab bei den Projekt-Parametern beim Linker "-lmingw32 -lSDLmain -lSDL" geschrieben, und damit funktioniert es. Ich weiss aber immer noch nicht, ob es auch möglich wäre, eine einzelne Datei zu schreiben, denn die Projekt-Optionen sind dann nicht vorhanden...
-
Dann mach halt ein Projekt, welches nur eine einzige Datei enthält.
-
Ja, aber beim Projekt werden auch immer automatisch mehrere Dateien (nicht nur .cpp) erstellt. Ist zwar nicht so schlimm, aber naja.
Wie macht ihr das eigentlich, wenn ihr mit Grafik programmiert?
-
Die letzten Male hab ich immer 'nen Framework Projekt kopiert bzw. importiert.
Bye, TGGC (Das Eine, welches ist.)
-
Okay... Ich danke euch vielmals für die Hinweise und wünsche euch noch viel Spass beim Proggen

-