Форум русскоязычного сообщества Ubuntu


Увидели сообщение с непонятной ссылкой, спам, непристойность или оскорбление?
Воспользуйтесь ссылкой «Сообщить модератору» рядом с сообщением!

Автор Тема: Не понимаю что делать с пакетами libsdl2  (Прочитано 3523 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн gunsoy

  • Автор темы
  • Участник
  • *
  • Сообщений: 178
    • Просмотр профиля
Здравствуйте.

Мне нужно получить libsdl2, libsdl2-image и libsdl2-net. Вот тут я создал тему https://forum.ubuntu.ru/index.php?topic=237049.0, мне дали несколько ответов которые ни к чему не привели. Были также ссылки на все нужные мне либы, я их скачал, установил с помощью центра приложений Ubuntu, у меня появилась папка SDL2 в инклудах, а также все нужные либы, но при компиляции проекта в CodeBlocks выдаёт ошибки типа ошибка: «SDLKey» не был декларирован| и т.д. То есть если либы SDL к проекту не подключить, то выдаёт те же самые ошибки что и с ними, будто бы я их не подключал.

Я так понимаю накачал я кучу всего не нужного, сильно намусорил у себя. Может кто-нибудь поможет мне с этими пакетами, я новичок в Ubuntu и уже 2 дня мучаюсь с простым запуском SDL окна. Или хотябы помогите мне с Synaptic, что там нужно обновить чтобы можно было скачать с помощью него все эти пакеты?

Оффлайн Чистый

  • Почётный модератор
  • Старожил
  • *
  • Сообщений: 3473
  • nix - вот оно счастье...
    • Просмотр профиля
Re: Не понимаю что делать с пакетами libsdl2
« Ответ #1 : 13 Января 2014, 20:02:41 »
вы вероятнее всего подключили заголовочные файлы, но при этом не указали компилятору что бы он слинковал эти библиотеки с вашим приложением вот и ругается...
Тестовый репозиторий kdeNeur ppa:devcode/kdeneur
各々が死ぬことをどのように決定する

Оффлайн gunsoy

  • Автор темы
  • Участник
  • *
  • Сообщений: 178
    • Просмотр профиля
Re: Не понимаю что делать с пакетами libsdl2
« Ответ #2 : 13 Января 2014, 21:02:15 »
Вот у меня уже установлено SDL версии 1.2 эта версия в CodeBlocks при подключении инклудов и либ компилируется и запускается нормально. Версию libsdl2 я подключаю точно также, то есть все те же либы и инклуды, но второй версии. Я мог бы пользоваться и версией 1.2, но у меня возникают проблемы с SDL_ttf так как он у меня второй версии.

Оффлайн Чистый

  • Почётный модератор
  • Старожил
  • *
  • Сообщений: 3473
  • nix - вот оно счастье...
    • Просмотр профиля
Re: Не понимаю что делать с пакетами libsdl2
« Ответ #3 : 13 Января 2014, 21:43:12 »
ну тогда давайте вывод компилятора полный
Тестовый репозиторий kdeNeur ppa:devcode/kdeneur
各々が死ぬことをどのように決定する

Оффлайн gunsoy

  • Автор темы
  • Участник
  • *
  • Сообщений: 178
    • Просмотр профиля
Re: Не понимаю что делать с пакетами libsdl2
« Ответ #4 : 15 Января 2014, 19:54:33 »
Вот полный вывод

/home/vadim/server/glsl_sdl_projectLinux13/CrossWindow.h|24|ошибка: «SDLKey» не был декларирован|
/home/vadim/server/glsl_sdl_projectLinux13/CrossWindow.h|24|ошибка: «SDLMod» не был декларирован|
/home/vadim/server/glsl_sdl_projectLinux13/CrossWindow.h|25|ошибка: «SDLKey» не был декларирован|
/home/vadim/server/glsl_sdl_projectLinux13/CrossWindow.h|25|ошибка: «SDLMod» не был декларирован|
/home/vadim/server/glsl_sdl_projectLinux13/AuthorizationWindow.h|56|ошибка: «SDLKey» не был декларирован|
/home/vadim/server/glsl_sdl_projectLinux13/AuthorizationWindow.h|56|ошибка: «SDLMod» не был декларирован|
/home/vadim/server/glsl_sdl_projectLinux13/AuthorizationWindow.h|57|ошибка: «SDLKey» не был декларирован|
/home/vadim/server/glsl_sdl_projectLinux13/AuthorizationWindow.h|57|ошибка: «SDLMod» не был декларирован|
/home/vadim/server/glsl_sdl_projectLinux13/AuthorizationWindow.cpp|5|ошибка: нет декларации «SDL_ACTIVEEVENT» в этой области видимости|
/home/vadim/server/glsl_sdl_projectLinux13/AuthorizationWindow.cpp|6|ошибка: «SDL_Event» has no member named «active»|
/home/vadim/server/glsl_sdl_projectLinux13/AuthorizationWindow.cpp|7|ошибка: нет декларации «SDL_APPMOUSEFOCUS» в этой области видимости|
/home/vadim/server/glsl_sdl_projectLinux13/AuthorizationWindow.cpp|8|ошибка: «SDL_Event» has no member named «active»|
/home/vadim/server/glsl_sdl_projectLinux13/AuthorizationWindow.cpp|13|ошибка: нет декларации «SDL_APPINPUTFOCUS» в этой области видимости|
/home/vadim/server/glsl_sdl_projectLinux13/AuthorizationWindow.cpp|14|ошибка: «SDL_Event» has no member named «active»|
/home/vadim/server/glsl_sdl_projectLinux13/AuthorizationWindow.cpp|19|ошибка: нет декларации «SDL_APPACTIVE» в этой области видимости|
/home/vadim/server/glsl_sdl_projectLinux13/AuthorizationWindow.cpp|20|ошибка: «SDL_Event» has no member named «active»|
/home/vadim/server/glsl_sdl_projectLinux13/AuthorizationWindow.cpp|114|ошибка: нет декларации «SDL_VIDEORESIZE» в этой области видимости|
/home/vadim/server/glsl_sdl_projectLinux13/AuthorizationWindow.cpp|115|ошибка: «SDL_Event» has no member named «resize»|
/home/vadim/server/glsl_sdl_projectLinux13/AuthorizationWindow.cpp|115|ошибка: «SDL_Event» has no member named «resize»|
/home/vadim/server/glsl_sdl_projectLinux13/AuthorizationWindow.cpp|119|ошибка: нет декларации «SDL_VIDEOEXPOSE» в этой области видимости|
/home/vadim/server/glsl_sdl_projectLinux13/AuthorizationWindow.cpp|139|ошибка: переменная или поле «OnKeyDown» объявлено void|
/home/vadim/server/glsl_sdl_projectLinux13/AuthorizationWindow.cpp|139|ошибка: нет декларации «SDLKey» в этой области видимости|
/home/vadim/server/glsl_sdl_projectLinux13/AuthorizationWindow.cpp|139|ошибка: нет декларации «SDLMod» в этой области видимости|
/home/vadim/server/glsl_sdl_projectLinux13/AuthorizationWindow.cpp|139|ошибка: expected primary-expression before «unicode»|
||=== Build finished: 24 errors, 0 warnings ===|
« Последнее редактирование: 15 Января 2014, 21:17:30 от Чистый »

Оффлайн Чистый

  • Почётный модератор
  • Старожил
  • *
  • Сообщений: 3473
  • nix - вот оно счастье...
    • Просмотр профиля
Re: Не понимаю что делать с пакетами libsdl2
« Ответ #5 : 15 Января 2014, 21:18:25 »
а теперь покажи код который находится в AuthorizationWindow.cpp
Тестовый репозиторий kdeNeur ppa:devcode/kdeneur
各々が死ぬことをどのように決定する

Оффлайн gunsoy

  • Автор темы
  • Участник
  • *
  • Сообщений: 178
    • Просмотр профиля
Re: Не понимаю что делать с пакетами libsdl2
« Ответ #6 : 16 Января 2014, 12:07:47 »
Ну там 5000 строк кода и он работает с SDL 1.2. У меня по ходу проблема с либами. Если я их не подключаю, то ошибки те же самые. Подскажите пожалуйста что из этого мне нужно скачать http://telesys.org.ua/ubuntu/pool/universe/libs/libsdl2/, у меня по ходу либы с одной ссылки, а инклуды с другой. Пытался уже по новой всё попробовать установить, но при попытке установки пишет что у меня уже установленна более поздняя версия, мне просто нужно удалить все инклуды и либы? Или в Ubuntu по другому нужно удалять пакеты?

Оффлайн victor00000

  • Старожил
  • *
  • Сообщений: 15568
  • Глухонемой (Deaf)
    • Просмотр профиля
Re: Не понимаю что делать с пакетами libsdl2
« Ответ #7 : 16 Января 2014, 12:56:34 »
gunsoy,

Цитировать
/home/vadim/server/glsl_sdl_projectLinux13/AuthorizationWindow.cpp|114|ошибка: нет декларации «SDL_VIDEORESIZE» в этой области видимости|
grep -rs SDL_VIDEORESIZE /usr/include/у меня пусто вывод.
ты открой редактор AuthorizationWindow.cpp строки первую добав
#define SDL_VIDEORESIZE 1000


Пользователь решил продолжить мысль 16 Января 2014, 13:24:38:
apt-get install libsdl1.2-devroot@maxoft-ZBOX-ID84:~# grep -rs SDL_VIDEORESIZE /usr/include/
/usr/include/SDL/SDL_video.h: * occurs, SDL will send a SDL_VIDEORESIZE event to you application,
/usr/include/SDL/SDL_events.h:       SDL_VIDEORESIZE, /**< User resized video mode */
/usr/include/SDL/SDL_events.h: SDL_VIDEORESIZEMASK = SDL_EVENTMASK(SDL_VIDEORESIZE),
/usr/include/SDL/SDL_events.h: Uint8 type; /**< SDL_VIDEORESIZE */
root@maxoft-ZBOX-ID84:~#
« Последнее редактирование: 16 Января 2014, 13:24:38 от victor00000 »
Wars ~.o

Оффлайн gunsoy

  • Автор темы
  • Участник
  • *
  • Сообщений: 178
    • Просмотр профиля
Re: Не понимаю что делать с пакетами libsdl2
« Ответ #8 : 16 Января 2014, 22:25:25 »
Точно в SDL 1.2 в файле SDL_events.h есть SDL_VIDEORESIZE, а вот в SDL 2.0 в этом же файле SDL_VIDEORESIZE отсутствует

Вот SDL_EventType из SDL 1.2
(Нажмите, чтобы показать/скрыть)



А вот из SDL 2.0

(Нажмите, чтобы показать/скрыть)

Что с этим можно сделать?

Чистый: Очень прошу в сл раз, большой текст прятать под спойлер!
« Последнее редактирование: 17 Января 2014, 00:19:29 от Чистый »

Оффлайн victor00000

  • Старожил
  • *
  • Сообщений: 15568
  • Глухонемой (Deaf)
    • Просмотр профиля
Re: Не понимаю что делать с пакетами libsdl2
« Ответ #9 : 16 Января 2014, 23:18:23 »
#include "SDL/SDL_events.h"уже?
Wars ~.o

Оффлайн gunsoy

  • Автор темы
  • Участник
  • *
  • Сообщений: 178
    • Просмотр профиля
Re: Не понимаю что делать с пакетами libsdl2
« Ответ #10 : 18 Января 2014, 14:47:26 »
#include "SDL/SDL_events.h"
уже?


Не понял вопроса.

Причины ошибок которые у меня вылезают в программе - в инклудах. То отсутствие какой-то константы, то названия типов другие, вот например в SDL_events.h (SDL2) отсутствует SDL_VIDEORESIZE или вот ошибка
/home/vadim/server/glsl_sdl_projectLinux13/CrossWindow.h|24|ошибка: «SDLKey» не был декларирован|

В SDL 1.2 этот тип определён, а в SDL 2 он имеет другое название.

Ну если все константы и типы в моей программе переименовать, то ошибки исчезнут (наверное), но весь код который у меня в программе я писал ещё когда сидел в Windows, использовал я в Windows версию SDL 2 и весь этот код нормально работает в Ubuntu правда на SDL 1.2. Мне вот нужна кроссплатформенная программа, поэтому изменять типы в программе не годится. Почему же инклуды SDL 2 в Ubuntu так сильно отличаются и от SDL 1.2 в Ubuntu, и от SDL 2 в Windows?

Оффлайн victor00000

  • Старожил
  • *
  • Сообщений: 15568
  • Глухонемой (Deaf)
    • Просмотр профиля
Wars ~.o

Оффлайн unimix

  • Активист
  • *
  • Сообщений: 537
    • Просмотр профиля
Re: Не понимаю что делать с пакетами libsdl2
« Ответ #12 : 19 Января 2014, 14:50:10 »
Похоже, необходимо изменить подключаемые заголовочные файлы и библиотеку. Если был установлен пакет libsdl2-dev.deb, а проект создавался с помощью шаблона SDL в CodeBlocks, то можно изменить файл проекта.

В файле проекта (.cbp) есть такие строки:
Код: (XML) [Выделить]
        <Compiler>
            <Add option="`sdl-config --cflags`" />
            <Add option="-Wall" />
        </Compiler>
        <Linker>
            <Add option="`sdl-config --libs`" />
        </Linker>

Надо заменить 2 значения:

1
sdl-config --cflagsна
sdl2-config --cflags
2
sdl-config --libsна
sdl2-config --libs
ЗЫ. Я не работаю в CodeBlocks, так что не знаю, как это сделать средствами самой IDE.

Оффлайн gunsoy

  • Автор темы
  • Участник
  • *
  • Сообщений: 178
    • Просмотр профиля
Re: Не понимаю что делать с пакетами libsdl2
« Ответ #13 : 20 Января 2014, 13:18:31 »
Проект я создал без использования шаблона, подключал всё вручную. Все проблемы в инклудах SDL2. У меня такое ощущение что я скачал что-то не то. У кого есть установленный SDL2 проверьте пожалуйста, есть ли в файле SDL2/SDL_events.h константа SDL_VIDEORESIZE. Если есть, значит я и правда скачал совсем не то что нужно.

Оффлайн unimix

  • Активист
  • *
  • Сообщений: 537
    • Просмотр профиля
Re: Не понимаю что делать с пакетами libsdl2
« Ответ #14 : 20 Января 2014, 14:17:34 »
Я посмотрел исходники на http://www.libsdl.org:
  • в версиях 2.0.0 и 2.0.1 SDL_VIDEORESIZE не существует
  • в версии 1.2.15 SDL_VIDEORESIZE существует
В Убунте существуют такие пакеты:Если хочется, чтобы свой код работал с 2.0, то измени его, или используй SDL 1.2 (lucid и моложе).

А ещё, хорошо было бы ознакомиться с такой информацией: http://wiki.libsdl.org/MigrationGuide Там и про SDL_VIDEORESIZE сказано.
« Последнее редактирование: 20 Января 2014, 14:47:51 от unimix »

 

Страница сгенерирована за 0.039 секунд. Запросов: 25.