как использовать SDL в Linux? - PullRequest
1 голос
/ 03 декабря 2009

Сервер linux в моей школе - это простой сервер, без x-windows, просто интерфейс командной строки.

Я пытался создать графическую программу на этом сервере, но столкнулся с большими трудностями. Я использую библиотеку SDL, но каждый раз, когда я пытаюсь скомпилировать свой код с помощью gcc, я получаю:

testcursor.c:(.text+0x1ad): undefined reference to `SDL_Init'
testcursor.c:(.text+0x1b6): undefined reference to `SDL_GetError'
testcursor.c:(.text+0x200): undefined reference to `SDL_SetVideoMode'
...

Кто-нибудь знает, как решить проблему? Если нет, есть ли кто-нибудь, кто сделал графическую программу на C в Linux, пожалуйста, помогите! Я был бы признателен. Спасибо.

Ответы [ 3 ]

11 голосов
/ 12 января 2010

рекомендуемый способ связывания SDL в linux - использование сценария sdl-config .

пример:

gcc -c test.c `sdl-config --cflags`
gcc -o test test.o `sdl-config --libs`
./test

или пример:

gcc -o test test.c `sdl-config --cflags --libs`

где `- символ обратной галочки.

6 голосов
/ 03 декабря 2009

Добавьте -lSDL к вашей строке компиляции.

Это говорит gcc связать ваш код с библиотекой SDL.

3 голосов
/ 03 декабря 2009

Вы не ссылаетесь на библиотеку SDL. Ваша команда должна выглядеть примерно так:

gcc testcursor.c -lsdl

Это предполагает, что вы используете SDL, поставляемый с вашим дистрибутивом Linux. Если вы скачали и собрали его вручную, вам может понадобиться что-то более сложное, например:

gcc -I/usr/local/include/sdl testcursor.c -L/usr/local/lib -lsdl

Опции -I и -L сообщают gcc, где искать подключаемые файлы и библиотеки, соответственно. Первая команда не нуждается в них, потому что если вы используете стандартный SDL для своей системы, они находятся в расположениях по умолчанию.

...