Einbinden von Bibliotheken in Microsoft Visual C++ 2010 express
-
Ich wollte Die SDL2-Library in ein einfaches C++ Projekt einfügen
Hier der Code von der sdl.cpp:#include<SDL.h> #include<iostream> using namespace std; int main() { cout<<"Hallo"; return 0; }
Und Die Fehlermeldung:
Ausgabe"Erstllen":
1> sdl.cpp
1> LINK : C:[Mein Dateipfad des Projektes]\sdl\Debug\sdl.exe wurde nicht gefunden oder beim letzten inkrementellen Linkvorgang nicht erstellt; vollständiger Link wird durchgeführt.
1>SDL2main.lib(SDL_windows_main.obj) : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "_SDL_main" in Funktion "_main_utf8".
1>C:[Mein Dateipfad des Projektes]\sdl\Debug\sdl.exe : fatal error LNK1120: 1 nicht aufgelöste externe Verweise.Ausgabe"Debuggen":
"sdl.exe": "C:[Mein Dateipfad des Projektes]\sdl\Debug\sdl.exe" geladen, Symbole wurden geladen.
"sdl.exe": "C:\Windows\SysWOW64\ntdll.dll" geladen, Cannot find or open the PDB file
"sdl.exe": "C:\Windows\SysWOW64\kernel32.dll" geladen, Cannot find or open the PDB file
"sdl.exe": "C:\Windows\SysWOW64\KernelBase.dll" geladen, Cannot find or open the PDB file
"sdl.exe": "C:\Windows\SysWOW64\msvcr100d.dll" geladen, Symbole wurden geladen.
Der Thread 'Win32-Thread' (0x2304) hat mit Code 0 (0x0) geendet.
Der Thread 'Win32-Thread' (0x34a8) hat mit Code 0 (0x0) geendet.
Das Programm "[7976] sdl.exe: Systemeigen" wurde mit Code 0 (0x0) beendet.Ausgabe"Buildreihenfolge":
siehe: Ausgabe "Erstellen"
Ich habe bei Projekt\Eigenschaften\Konfigurationseigenschaften\VC++-Verzeichnisse\Includeverzeichnisse den include-Ordner von SDL2 verlinkt
und bei Projekt\Eigenschaften\Konfigurationseigenschaften\VC++-Verzeichnisse\Bibilotheksverzeichnisse den lib\x86-Ordner von SDL2 verlinkt.
Außerdem habe ich bei Projekt\Eigenschaften\Konfigurationseigenschaften\Linker\Eingabe\Zusätzliche Abhängigkeiten SDL2.lib und SDL2main.lib in das Fenster geschrieben.(Das Projekt ist als leeres Projekt erstellt worden)
(Mir ist klar das ich die SDL-Library für dieses Projekt nicht brauche wollte sie aber für zukünftige Projekte installieren.)
-
Dieser Thread wurde von Moderator/in Arcoth aus dem Forum C++ (alle ISO-Standards) in das Forum Compiler- und IDE-Forum verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.
-
Weiß nicht, was SDL ist, jedoch bin ich von den Systemen welche die SDL unterstützen stark beeindruckt .
Hier ein auszug aus der SDL_main.h:
107 /**108 * The prototype for the application's main() function
109 */
110 extern C_LINKAGE int SDL_main(int argc, char *argv[]);
Wenn du gegen die SDL_main.lib linkst, musst du auch eine SDL_main definieren.
Einfach irgendwo:extern "C" { int SDL_main(int argc, char* argv[]) {}}
schreiben, das ist ab dann deine neue main, die alte brauchst dann auch nicht mehr.
-
Danke,aber mir fehlt jetzt eine Headerdatei,Mein neuer Code:
#include<SDL.h> #include<iostream> using namespace std; extern "C" {int SDL_main(int argc, char* argv[]){}} { cout<<"Hallo"; return 0; }
Fehlermeldung:
1> sdl.cpp
1>c:[Mein Dateipfad des Projektes]\sdl\sdl\sdl.cpp(6): error C2447: '{': Funktionsheader fehlt - Parameterliste im alten Stil?
Ich habe die SDL2.dll aber in den Ordner c:[Mein Dateipfad des Projektes]\sdl\sdl\ Kopiert
und den include Ordner mit den ganzen Headerdateien wiegesagt verlinkt
-
Ähem... Schau dir deinen Code nochmal ganz genau an...
-
Danke mein neuer Code:
#include<SDL.h> #include<iostream> using namespace std; extern"C"{int SDL_main(int argc,char* argv[]) { cout<<"Hallo"; return 0; }}