Dodawanie biblioteki SDL, błędy przy build.

0

Witam,

Chciałbym dodać bibliotekę SDL do Visuala, ale już nerwy mi puszczają bo robiłem wszystko uważnie i dokładnie jak trzeba w tym poradniku:

http://lazyfoo.net/SDL_tutorials/lesson01/windows/msvsnet2010e/index.php,

chyba z 10 razy ale to nie chce działać!

Tak jak w poradniku kompiluję ten program:

 #include <SDL.h>
int main(int argc, char * args[])
{
	SDL_Init(SDL_INIT_EVERYTHING);
	SDL_Quit();
	return 0;
}

I kompiluje się bez błędów i ostrzeżeń więc jest OK.

Ale, kiedy dochodzę na koniec poradnika żeby zrobić build, no to już jest masakra dostaję jakieś takie błędy:

  1. LNK1120 2 unresolved externals

  2. LNK2019 unresolved external symbol __imp__fprintf referenced in function _ShowError

  3. LNK2019 unresolved external symbol __imp____iob_func referenced in function _ShowError

A tutaj co pisze w konsoli:

1>------ Build started: Project: Project1, Configuration: Debug Win32 ------
1> Source.cpp
1>SDLmain.lib(SDL_win32_main.obj) : error LNK2019: unresolved external symbol __imp__fprintf referenced in function _ShowError
1>SDLmain.lib(SDL_win32_main.obj) : error LNK2019: unresolved external symbol __imp____iob_func referenced in function _ShowError
1>c:\users\miccaldo\documents\visual studio 2015\Projects\Project1\Debug\Project1.exe : fatal error LNK1120: 2 unresolved externals
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========

W dodatku, kiedy chcę zrobić debug, to wiadomo ostrzega że są błędy w projekcie, a później wyskakuje:

"Unable to start program c:(...)\Project1.exe.

Nie można odnaleźć określonego pliku."

Nie mam pojęcia o co chodzi, a zapewniam że robię wszystko jak być powinno. Szukałem w google i były podobne problemy ale nic nie daje niestety. Czy miałby ktoś pomysł jak poprawnie dodać tą bibliotekę? Może reinstall Visuala zrobić?

Bardzo byłbym wdzięczny za pomoc kogoś bardziej doświadczonego bo samemu sobie nie poradzę.

EDIT:

Jednak sobie poradziłem. Napiszę co zrobiłem może komuś się przyda.

Musiałem dodać do linkera jedną bibliotekę: legacy_stdio_definitions.lib

Oraz dodać takie 3 linijki:

 FILE _iob[] = { *stdin, *stdout, *stderr };

extern "C" FILE * __cdecl __iob_func(void)
{
	return _iob;
}
0

Mam następny problem ale żeby już nie zakładać nowego tematu, napiszę tutaj.

Próbuję wyświetlić okno na 2 sekundy. Ale jeśli uruchamiam poprzez Visual, dostaję taki komunikat(załącznik).

user image

Z kolei, jeśli uruchamiam bezpośrednio przez plik .exe to nic się nie dzieje, program się uruchamia a po krótkim czasie się wyłącza :(

Wybaczcie jeśli są to podstawowe problemy ale będę wdzięczny za pomoc.

Zapomniałem, oto kod ale jest na pewno poprawny ponieważ pochodzi z kursu:

#include <SDL.h>
SDL_Surface * ekran = NULL;
int main(int argc, char * args[])
{
	SDL_Init(SDL_INIT_EVERYTHING);
	ekran = SDL_SetVideoMode(640, 480, 32, SDL_SWSURFACE);
	SDL_Flip(ekran);
	SDL_Delay(2000);
	SDL_Quit();
	return 0;
}


FILE _iob[] = { *stdin, *stdout, *stderr };

extern "C" FILE * __cdecl __iob_func(void)
{
	return _iob;
}
 
0

Witam, ponawiam prośbę o pomoc.

1 użytkowników online, w tym zalogowanych: 0, gości: 1