#c #linux #debian #sdl-2
#c #linux #debian #sdl-2
Вопрос:
я пытаюсь создать программу на C, которая включает библиотеки SDL2, но по какой-то неизвестной причине я получаю ошибку во время компиляции с помощью функции sdl, я объясняю сам :
- Я загрузил все необходимые пакеты SDL2 для разработчиков с помощью этой команды
apt-get-install libsdl2-dev libsdl2-gfx-dev libsdl2-image-dev libsdl2-mixer-dev libsdl2-net-dev libsdl2-ttf-dev
- В моем файле c я поместил это вверху :
#include <SDL2/SDL.h>
- чтобы скомпилировать мой код с помощью gcc, я связал его с
SDL2-config
добавлением всех отсутствующих библиотек и т. Д.
команда, которую я использую :gcc main.c -o main.o `sdl2-config --cflags --libs`
- наконец, это код, который я хочу скомпилировать
int main(int argc, char *argv[]) { SDL_Init(SDL_INIT_VIDEO); SDL_SetVideoMode(640, 480, 32, SDL_HWSURFACE); SDL_Quit(); return EXIT_SUCCESS; }
это ошибки, которые я получаю
main.c: In function ‘main’:
main.c:19:5: warning: implicit declaration of function ‘SDL_SetVideoMode’; did you mean ‘SDL_GetVideoDriver’? [-Wimplicit-function-declaration]
19 | SDL_SetVideoMode(640, 480, 32, SDL_HWSURFACE); // Ouverture de la fenêtre
| ^~~~~~~~~~~~~~~~
| SDL_GetVideoDriver
main.c:19:36: error: ‘SDL_HWSURFACE’ undeclared (first use in this function); did you mean ‘SDL_SWSURFACE’?
19 | SDL_SetVideoMode(640, 480, 32, SDL_HWSURFACE); // Ouverture de la fenêtre
| ^~~~~~~~~~~~~
| SDL_SWSURFACE
main.c:19:36: note: each undeclared identifier is reported only once for each function it appears in
кажется, что некоторые библиотеки не были добавлены или отсутствуют, но я думаю, что я добавил их все.
Комментарии:
1. Если вы хотите использовать функции SDL 1.2, например
SDL_SetVideoMode()
, почему вы установили SDL2? SDL2 переработал API, и эта функция в нем больше не существует.2. Код, который вы пытаетесь скомпилировать, был написан для древнего SDL1.2, в то время как у нас уже есть SDL2. Если вы следуете руководству, выбросьте его и найдите лучшее.