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


Получить помощь и пообщаться с другими пользователями Ubuntu можно
на irc канале #ubuntu-ru в сети Freenode
и в Jabber конференции ubuntu@conference.jabber.ru

Автор Тема: трабла с allegro  (Прочитано 1634 раз)

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

Оффлайн picnik

  • Автор темы
  • Активист
  • *
  • Сообщений: 310
    • Просмотр профиля
трабла с allegro
« : 24 Июня 2008, 13:02:21 »
Есть такая библиотека allegro, она для создания игр, ну вот я ее поставил через synaptic, версия 4.2.2 вместе с development files. Теперь пытаюсь откомпилить программу (пример из FreeBASIC, но это не так важно):

nikita@kubuntu-linux:/home/nikita/Documents/FreeBASIC# ./fbc ./hello.bas
/usr/lib/liballeg.a(xwin.o): In function `_xwin_hide_x_mouse':
(.text+0x9482): undefined reference to `XcursorImageDestroy'
/usr/lib/liballeg.a(xwin.o): In function `_xwin_private_create_window':
(.text+0x97a7): undefined reference to `XcursorSupportsARGB'
/usr/lib/liballeg.a(xwin.o): In function `_xwin_fetch_mode_list':
(.text+0x9e7f): undefined reference to `XF86VidModeQueryExtension'
/usr/lib/liballeg.a(xwin.o): In function `_xwin_fetch_mode_list':
(.text+0x9e9e): undefined reference to `XF86VidModeQueryVersion'
/usr/lib/liballeg.a(xwin.o): In function `_xwin_fetch_mode_list':
(.text+0x9ec0): undefined reference to `XF86VidModeGetAllModeLines'
/usr/lib/liballeg.a(xwin.o): In function `_xwin_show_mouse':
(.text+0xb366): undefined reference to `XcursorImageLoadCursor'
/usr/lib/liballeg.a(xwin.o): In function `_xwin_set_mouse_sprite':
(.text+0xb427): undefined reference to `XcursorImageDestroy'
/usr/lib/liballeg.a(xwin.o): In function `_xwin_set_mouse_sprite':
(.text+0xb46e): undefined reference to `XcursorImageCreate'
/usr/lib/liballeg.a(xwin.o): In function `_xwin_private_destroy_screen':
(.text+0xbb7c): undefined reference to `XF86VidModeLockModeSwitch'
/usr/lib/liballeg.a(xwin.o): In function `_xwin_private_destroy_screen':
(.text+0xbb97): undefined reference to `XF86VidModeSwitchToMode'
/usr/lib/liballeg.a(xwin.o): In function `.L2286':
(.text+0xd9de): undefined reference to `XF86VidModeQueryExtension'
/usr/lib/liballeg.a(xwin.o): In function `.L2286':
(.text+0xda03): undefined reference to `XF86VidModeQueryVersion'
/usr/lib/liballeg.a(xwin.o): In function `.L2286':
(.text+0xda29): undefined reference to `XF86VidModeGetAllModeLines'
/usr/lib/liballeg.a(xwin.o): In function `.L2286':
(.text+0xdf56): undefined reference to `XF86VidModeSwitchToMode'
/usr/lib/liballeg.a(xwin.o): In function `.L2286':
(.text+0xdfa0): undefined reference to `XF86VidModeLockModeSwitch'
/usr/lib/liballeg.a(xwin.o): In function `.L2286':
(.text+0xdfb1): undefined reference to `XF86VidModeSetViewPort'
/usr/lib/liballeg.a(xwin.o): In function `_xwin_destroy_window':
(.text+0xe3a0): undefined reference to `XcursorImageDestroy'

Что надо доустановить?

Оффлайн S.Tokarev

  • Активист
  • *
  • Сообщений: 415
    • Просмотр профиля
Re: трабла с allegro
« Ответ #1 : 25 Июня 2008, 08:53:18 »
Может
xorg-dev

Оффлайн picnik

  • Автор темы
  • Активист
  • *
  • Сообщений: 310
    • Просмотр профиля
Re: трабла с allegro
« Ответ #2 : 25 Июня 2008, 13:44:02 »
поставил, но эффекта никакого  :(

Оффлайн S.Tokarev

  • Активист
  • *
  • Сообщений: 415
    • Просмотр профиля
Re: трабла с allegro
« Ответ #3 : 25 Июня 2008, 14:34:41 »
Попробуй
sudo ldconfig
хотя вроде должна была отработать сама

Оффлайн picnik

  • Автор темы
  • Активист
  • *
  • Сообщений: 310
    • Просмотр профиля
Re: трабла с allegro
« Ответ #4 : 25 Июня 2008, 15:18:57 »
Не работает. Надо сказать, что FreeBASIC юзает свой линкер (тоже ld). Может в этом дело? Если да, то как настроить его линкер?

Оффлайн S.Tokarev

  • Активист
  • *
  • Сообщений: 415
    • Просмотр профиля
Re: трабла с allegro
« Ответ #5 : 25 Июня 2008, 21:39:45 »
Надо как-то указать путь к библиотекам xlib
Смотри ключи к линкеру
Стандартный использует ключ -L
Сделай Makefile


Оффлайн picnik

  • Автор темы
  • Активист
  • *
  • Сообщений: 310
    • Просмотр профиля
Re: трабла с allegro
« Ответ #6 : 26 Июня 2008, 13:00:57 »
Решил  :)
Оказалось, есть скрипт allegro-config.
allegro-config --libsВыдаст список ключей для стандартного линкера. Они будут разделены пробелами. Но линкер freebasic хочет чтобы ключи разделялись запятыми. Поэтому либо придется каждый раз писать этот список через ключ -Wl freebasic'а, разделяя все запятыми:
./fbc -Wl -L/usr/lib,-lalleg-4.2.2,-lm,-lXxf86vm,-lXcursor,-lXpm,-lXext,-lX11,-lpthread,-ldl ./hello.basЛибо переделать скрипт allegro-config так, чтобы ключи сразу разделялись запятыми, а не пробелами. Тогда будет покороче:
./fbc -Wl 'allegro-config-fb --libs' ./hello.bas
Я думаю, есть способ и поизящнее этого, т.к. программы, использующие, например, gtk+ или cairo у меня компилятся без такого шаманства  :)

Оффлайн S.Tokarev

  • Активист
  • *
  • Сообщений: 415
    • Просмотр профиля
Re: трабла с allegro
« Ответ #7 : 26 Июня 2008, 13:41:52 »
Настоятельно рекоммендую использовать make+Makefile
Обязательно изучи.

 

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