LINUX.ORG.RU

Ошибка при сборке Mplayer'а


0

0

Конфигурировал так --

./configure --enable-largefiles --enable-gui

Ошибка:

$ make
make -C loader
make[1]: Entering directory `/home/vovans/new/Z/main/loader'
cc -I. -I.. -I../libvo -I../../libvo -I/usr/X11/include -fno-PIC -O4 -march=pentium3 -mcpu=pentium3 -pipe -ffast-math -fomit-frame-pointer -D_REENTRANT -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -I/usr/include/gtk-1.2 -I/usr/include/glib-1.2 -I/usr/lib/glib/include -I/usr/X11R6/include -U_FILE_OFFSET_BITS -I/usr/include/gtk-1.2 -I/usr/include/glib-1.2 -I/usr/lib/glib/include -I/usr/X11R6/include  -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -DMPLAYER -D__WINE__  -c ldt_keeper.c
ldt_keeper.c: In function `Setup_LDT_Keeper':
ldt_keeper.c:181: error: storage size of `array' isn't known
ldt_keeper.c:215: error: invalid application of `sizeof' to an incomplete type
make[1]: *** [ldt_keeper.o] ?????? 1
make[1]: Leaving directory `/home/vovans/new/Z/main/loader'
make: *** [loader/libloader.a] Ошибка 2
★★★★★

Ответ на: комментарий от Selecter

Дистра Слака. Какие devel-ы? Что имеется ввиду?

vovans ★★★★★
() автор топика
Ответ на: комментарий от anonymous

void* fs_seg=0;

ldt_fs_t* Setup_LDT_Keeper(void)
{
181==>    struct modify_ldt_ldt_s array;
          int ret;
          ldt_fs_t* ldt_fs = (ldt_fs_t*) malloc(sizeof(ldt_fs_t));

vovans ★★★★★
() автор топика
Ответ на: комментарий от vovans

ну видишь modify_ldt_ldt_s почему-то до этой строчки не объявлен,
надо сделать
grep -R modify_ldt_ldt_s *

и найти где есть что-нибудь типа этого
struct modify_ldt_ldt_s {
bla-bla

или

typedef struct _modify_ldt_ldt_s {

anonymous
()
Ответ на: комментарий от anonymous

$ grep -R modify_ldt_ldt_s *
loader/ldt_keeper.c:#define modify_ldt_ldt_s user_desc
loader/ldt_keeper.c:struct modify_ldt_ldt_s {
loader/ldt_keeper.c:static int LDT_Modify( int func, struct modify_ldt_ldt_s *ptr,
loader/ldt_keeper.c:static void LDT_EntryToBytes( unsigned long *buffer, const struct modify_ldt_ldt_s *content )
loader/ldt_keeper.c:    struct modify_ldt_ldt_s array;
loader/ldt_keeper.c:    //ret=LDT_Modify(0x1, &array, sizeof(struct modify_ldt_ldt_s));
loader/ldt_keeper.c:    ret=modify_ldt(0x1, &array, sizeof(struct modify_ldt_ldt_s));

vovans ★★★★★
() автор топика
Ответ на: комментарий от vovans


>loader/ldt_keeper.c:struct modify_ldt_ldt_s {

это то что нужно, теперь надо проверить две вещи:
1)что объявление идет до 181 строчки
2)что объявление структуры не окружено #ifdef разными

>loader/ldt_keeper.c:#define modify_ldt_ldt_s user_desc

напрягает что еще и макрос есть с таким именем.

anonymous
()
Ответ на: комментарий от anonymous

1) Объявление идёт в строке 74

2) Кажись ничего не закомментированнно:

struct modify_ldt_ldt_s { unsigned int entry_number; unsigned long base_addr; unsigned int limit; unsigned int seg_32bit:1; unsigned int contents:2; unsigned int read_exec_only:1; unsigned int limit_in_pages:1; unsigned int seg_not_present:1; unsigned int useable:1; };

vovans ★★★★★
() автор топика
Ответ на: комментарий от anonymous

1) Объявление идёт в строке 74

2) Кажись ничего не закомментированнно:

struct modify_ldt_ldt_s {
        unsigned int  entry_number;
        unsigned long base_addr;
        unsigned int  limit;
        unsigned int  seg_32bit:1;
        unsigned int  contents:2;
        unsigned int  read_exec_only:1;
        unsigned int  limit_in_pages:1;
        unsigned int  seg_not_present:1;
        unsigned int  useable:1;
};

vovans ★★★★★
() автор топика
Ответ на: комментарий от vovans

проверить что объявление modify_ldt_ldt_s на самом деле входит
в исходный текст, можно поставив
прям перед ним строчку:
#error "hey, hey, hey"

если при компиляции выдаст ошибку hey, hey, hey, значит
структура объявлена,
но я думаю не выдаст,
тогда надо найти ближайщий не закрытый #ifdef и подумать

fghj ★★★★★
()
Ответ на: комментарий от fghj

2vovans: Собственно pkgbuild :)

 $Id: PKGBUILD,v 1.57 2005/01/05 18:50:37 dorphell Exp $
# Maintainer: dorphell <dorphell@archlinux.org>
pkgname=mplayer
pkgver=1.0pre6a
pkgrel=4
pkgdesc="A movie player for linux"
depends=('x-server' 'libmad' 'libungif' 'libvorbis' 'divx4linux' 'cdparanoia' \
         'gtk' 'codecs' 'sdl' 'libjpeg' 'lame' 'libtheora' 'esd' 'faad2')
source=(ftp://ftp.mplayerhq.hu/MPlayer/releases/MPlayer-$pkgver.tar.bz2 \
  ftp://ftp.mplayerhq.hu/MPlayer/releases/fonts/font-arial-iso-8859-1.tar.bz2 \
        ftp://ftp.mplayerhq.hu/MPlayer/Skin/Blue-1.4.tar.bz2)
url="http://www.mplayerhq.hu/";
md5sums=('a812d945b884c2e2fa7f90c57cd76bff' '1ecd31d17b51f16332b1fcc7da36b312'\
         '4b8ec8822a493c3d68ff5de7ec021a06')
force=y

build() {
  cd $startdir/src/MPlayer-$pkgver
  ./configure --prefix=/usr --enable-gui --enable-linux-devfs --disable-arts \
    --disable-runtime-cpudetection --disable-smb --enable-sdl --enable-x11 \
    --enable-theora --with-win32libdir=/usr/lib/win32 --confdir=/etc/mplayer \
    --enable-external-faad
  make || return 1
  make DESTDIR=$startdir/pkg install
  mkdir -p $startdir/pkg/usr/share/mplayer/Skin
  cp etc/{codecs.conf,input.conf,example.conf} $startdir/pkg/usr/share/mplayer
  rm -rf $startdir/pkg/usr/share/mplayer/font $startdir/pkg/usr/etc
  mv $startdir/src/font-arial-iso-8859-1/font-arial-{14,18,24,28}-iso-8859-1 $startdir/pkg/usr/share/mplayer/
  cd $startdir/pkg/usr/share/mplayer
  ln -s font-arial-24-iso-8859-1 font
  mv $startdir/src/Blue $startdir/pkg/usr/share/mplayer/Skin/default
}

BSDobermann
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.