MS Visual C++ 2010 Express & SDL - problemy

Niedawno opisałem jak zmusić do współpracy te dwa narzędzia(IDE - MS Visual C++ 2010 Express Edition i biblioteki SDL) zaś w dzisiejszym poście podam konkretne błędy i konkretne rozwiązania.
So...:
Błąd nr.1:
LINK : fatal error LNK1561: entry point must be defined.

Rozwiązanie:
PPM na ikonkę projektu, dalej properties. W oknie dialogowym: Configuration Properties > Linker > System. Jako subsystem wybrać opcję - Windows (/SUBSYSTEM:WINDOWS)

Błąd nr.2:
Nie linkowane dodatkowe biblioteki. Np. SDL.lib lub SDLmain.lib. Dokładne kody błędów na screen'ach:


Rozwiązanie:
Można to zrobić w dwojaki sposób:
  1. W ustawieniach projektu przechodzimy do: Configuration Properties > Linker > Command Line. W dodatkowych opcjach dopisujemy potrzebne biblioteki np. "SDL.lib".
  2. W ustawieniach projektu przechodzimy do: Configuration Properties > Linker > Input. Do pola Additional Dependencies dopisujemy wymagane biblioteki np. SDL.lib; 

Błąd nr.3: 
fatal error C1083: Cannot open include file: 'SDL.h': No such file or directory.

Rozwiązanie:
W ustawieniach projektu przechodzimy do: Configuration Properties > VC++ Directories. Do pola Include Directories dopisujemy ścieżkę wymaganych plików nagłówkowych. Np. $(VCInstallDir)include\sdl;

Błąd nr.4:
error LNK2005: _exit already defined in LIBCMT.lib(crt0dat.obj)
warning LNK4098: defaultlib 'msvcrt.lib' conflicts with use of other libs; use /NODEFAULTLIB:library
fatal error LNK1169: one or more multiply defined symbols found

Rozwiązanie:
W ustawieniach projektu przechodzimy do: Configuration Properties > C/C++ > Code Generation. Jako Runtime Library wybieramy opcję - Multi-threaded Debug DLL (/MDd).


Nareszcie można zacząć w spokoju programować...

Komentarze