Nowe posty

Autor Wątek: MPlayer - kompilacja i dużo komunikatów  (Przeczytany 10159 razy)

addos2

  • Gość
MPlayer - kompilacja i dużo komunikatów
« dnia: 2008-02-19, 16:52:58 »
Witam

Jestem początkujący w tej kwestii, więc proszę o wyrozumiałość.

Chcę samemu skompilować program MPlayer. Zanim sie za to wziąłem poszukałem troche informacji na internecie.

Podczas samej kompilacji otrzymuję w konsoli niesamowicie dużo komunikatów, które  zmieściły by się na kilkudziesięciu(!) ekranach. Nie spodziewałem się czegoś takiego :) Jak się upewnić, czy któryś z tych komunikatów nie jest przypadkiem informacją o błędzie? Nie bardzo mi się uśmiecha przeglądanie takiej masy informacji. Widzę, że sporo osób podczas / po kompilacji ma problemy. Nie chciałbym więc, żeby jakieś istotne komunikaty o błędach zostały przeze mnie zignorowane / nie zauważone i później skutkowały problemami podczas używania MPlayera.

Czy to  źle, jeśli po wydaniu polecenia "configure" w niektórych liniach mam "no" ? Czasami jest "yes" a czasami "no". Co to oznacza? Czy coś jest do poprawienia z mojej strony?


Przy okazji, skoro jesteśmy przy temacie kompilacji, zapytam: Czy wydawanie poleceń: "configure" lub "make" ma wpływ na na resztę systemu, czy tylko na katalog, w którym umieszczone jest źródło?

TheUsh

  • Gość
MPlayer - kompilacja i dużo komunikatów
« Odpowiedź #1 dnia: 2008-02-19, 18:31:52 »
1. W configure nie wszystkie linijki muszą być na "yes". Dopóki to polecenie nie wyświetli ci, że czegoś potrzebuje dodatkowego, to się nie przejmuj :P
2. Gdyby po wydaniu polecenia make były jakiś błędy, to kompilator od razu by się zatrzymał i nie "leciał" dalej, wypisując w ostatnich paru linijkach błędy
3. Wydawanie poleceń configure i make nie ma wpływu na resztę systemu. Btw. jakbyś nie zauważył, to nie wydaje się ich z konta root'a więc najwyżej co te polecenia mogłyby zrobić, to pozmieniać coś w twoim katalogu domowym, ale do tego to one nie służą :D Dopiero wydanie komendy "make install" z poziomu root'a ma wpływ na system, bo jak już pewnie się domyśliłeś instaluje ona skompilowany program.

arctgx

  • Gość
MPlayer - kompilacja i dużo komunikatów
« Odpowiedź #2 dnia: 2008-02-19, 21:51:26 »
Skrypt configure MPlayera po wykonaniu daje dodatkowo podsumowanie obsługiwanych i nieobsługiwanych (za sprawą choćby wyboru w parametrze lub braku nagłówków) kodeków audio, wideo, języków i chyba nie tylko.

Dając skryptowi configure opcję --prefix=katalog możesz wybrać katalog, do którego masz prawo zapisu jako użytkownik. Polecenie make install zainstaluje go właśnie w nim. Podobnie można powiedzieć MPlayerowi, gdzie ma domyślnie szukać kodeków z win32. ./configure --help wyświetli sporo opcji. Czasem powłoka bash ma włączone dopełnianie TABem opcji, które znajdzie w configure.

addos2

  • Gość
MPlayer - kompilacja i dużo komunikatów
« Odpowiedź #3 dnia: 2008-02-21, 17:10:28 »
OK. Troche mam rozjaśnione w głowie. Za tę część dzięki :)

Powiedzcie mi jeszcze (jeśli można) czy:

" W configure nie wszystkie linijki muszą być na "yes". Dopóki to polecenie nie wyświetli ci, że czegoś potrzebuje dodatkowego, to się nie przejmuj :P "

informacje jakie otrzymałem, czegoś się "dopraszają":
(przepraszam, ale nie wiem, jak dołączyć plik, żeby nie wklejać duŻej ilości tekstu)

*** ./configure ***

Detected operating system: Linux
Detected host architecture: i386
Checking for cc version ... 4.1.2, ok
Checking for host cc ... cc
Checking for cross compilation ... no
Checking for CPU vendor ... GenuineIntel (6:22:1)
Checking for CPU type ...  Intel(R) Celeron(R) CPU          420  @ 1.60GHz
Checking for kernel support of mmx ... yes
Checking for kernel support of mmxext ... yes
Checking for kernel support of sse ... yes
Checking for kernel support of sse2 ... yes
Checking for kernel support of ssse3 ... yes
Checking for kernel support of cmov ... yes
Checking for mtrr support ... yes
Checking for GCC & CPU optimization abilities ... pentium-m
Checking for assembler support of -pipe option ... yes
Checking for compiler support of named assembler arguments ... yes
Checking for assembler (/usr/lib/gcc/i486-slackware-linux/4.1.2/../../../../i486-slackware-linux/bin/as ) ... ok
Checking for .align is a power of two ... no
Checking for Linux kernel version ... 2.6.21.5-smp, ok
Checking for -lposix ... no
Checking for -lm ... yes
Checking for langinfo ... yes
Checking for language ... using en (man pages: en )
Checking for enable sighandler ... yes
Checking for runtime cpudetection ... no
Checking for restrict keyword ... __restrict
Checking for __builtin_expect ... yes
Checking for kstat ... no
Checking for posix4 ... no
Checking for lrintf ... yes
Checking for mkstemp ... yes
Checking for nanosleep ... yes
Checking for socklib ... yes
Checking for inet_pton() ... yes (using )
Checking for network ... yes
Checking for inttypes.h (required) ... yes
Checking for int_fastXY_t in inttypes.h ... yes
Checking for word size ... 32
Checking for malloc.h ... yes
Checking for memalign() ... yes
Checking for alloca.h ... yes
Checking for mman.h ... yes
Checking for dynamic loader ... yes
Checking for dynamic a/v plugins support ... no
Checking for pthread ... yes (using -lpthread)
Checking for w32threads ... no (using pthread instead)
Checking for rpath ... no
Checking for iconv ... yes
Checking for soundcard.h ... yes (sys/soundcard.h)
Checking for sys/dvdio.h ... no
Checking for sys/cdio.h ... no
Checking for linux/cdrom.h ... yes
Checking for dvd.h ... no
Checking for termcap ... yes (using -lncurses)
Checking for termios ... yes (sys/termios.h)
Checking for shm ... yes
Checking for strsep() ... yes
Checking for vsscanf() ... yes
Checking for swab() ... yes
Checking for POSIX select() ... yes
Checking for gettimeofday() ... yes
Checking for glob() ... yes
Checking for setenv() ... yes
Checking for sys/sysinfo.h ... yes
Checking for pkg-config ... yes
Checking for Samba support (libsmbclient) ... yes
Checking for tdfxfb ... no
Checking for s3fb ... no
Checking for tdfxvid ... no
Checking for xvr100 ... no
Checking for tga ... yes
Checking for md5sum support ... yes
Checking for bl ... no
Checking for DirectFB ... no
Checking for X11 headers presence ... yes (using /usr/X11/include)
Checking for X11 ... yes
Checking for DPMS ... yes (using Xdpms 4)
Checking for Xv ... yes
Checking for XvMC ... no
Checking for Xinerama ... yes
Checking for Xxf86vm ... yes
Checking for XF86keysym ... yes
Checking for DGA ... yes (using DGA 2.0)
Checking for 3dfx ... no
Checking for OpenGL ... yes
Checking for VIDIX ... yes (internal)
Checking for /dev/mga_vid ... no
Checking for xmga ... no
Checking for GGI ... no
Checking for GGI extension: libggiwmh ... no
Checking for AA ... yes
Checking for CACA ... yes
Checking for SVGAlib ... yes
Checking for FBDev ... yes
Checking for DVB ... no
Checking for DVB HEAD ... yes
Checking for zr ... no
Checking for PNG support ... yes
Checking for JPEG support ... yes
Checking for PNM support ... yes
Checking for GIF support ... yes
Checking for broken giflib workaround ... disabled
Checking for VESA support ... no
Checking for SDL ... yes (using sdl-config)
Checking for NAS ... no
Checking for DXR2 ... no
Checking for DXR3/H+ ... no
Checking for IVTV TV-Out ... no
Checking for V4L2 MPEG Decoder ... no
Checking for OSS Audio ... yes
Checking for aRts ... yes
Checking for EsounD ... yes
Checking for esd_get_latency() ... yes
Checking for Polyp ... no
Checking for JACK ... no
Checking for OpenAL ... no
Checking for ALSA audio ... yes (using alsa 1.0.x and alsa/asoundlib.h)
Checking for Sun audio ... no
Checking for VCD support ... yes
Checking for dvdread ... yes (internal)
Checking for internal libdvdcss ... yes
Checking for cdparanoia ... yes
Checking for libcdio ... auto (using cdparanoia)
Checking for bitmap font support ... yes
Checking for freetype >= 2.0.9 ... yes
Checking for fontconfig ... yes
Checking for SSA/ASS support ... yes
Checking for fribidi with charsets ... yes
Checking for ENCA ... no
Checking for zlib ... yes
Checking for RTC ... yes
Checking for liblzo2 support ... yes
Checking for mad support ... yes
Checking for Twolame ... no
Checking for Toolame ... no
Checking for OggVorbis support ... yes (internal Tremor)
Checking for libspeex (version >= 1.1 required) ... no
Checking for OggTheora support ... yes
Checking for internal mp3lib support ... yes
Checking for internal liba52 support ... yes
Checking for libdca support ... no
Checking for internal libmpeg2 support ... yes
Checking for libmpcdec (musepack, version >= 1.2.1 required) ... no
Checking for FAAC (AAC encoder) support ... no (in libavcodec: )
Checking for FAAD2 (AAC) support ... yes (internal floating-point)
Checking for LADSPA plugin support ... no
Checking for Win32 codecs ... yes (using /usr/lib/codecs)
Checking for XAnim codecs ... yes (using /usr/lib/codecs)
Checking for RealPlayer codecs ... yes (using /usr/lib/codecs)
Checking for QuickTime codecs ... yes
Checking for Nemesi Streaming Media libraries ... no
Checking for LIVE555 Streaming Media libraries ... no
Checking for FFmpeg libavutil ... yes (static)
Checking for FFmpeg libavcodec ... yes (static)
Checking for FFmpeg libavformat ... yes (static)
Checking for FFmpeg libpostproc ... yes (static)
Checking for libamr narrowband ... no
Checking for libamr wideband ... no
Checking for libdv-0.9.5+ ... no
Checking for XviD ... no
Checking for x264 ... no (in libavcodec: no)
Checking for libnut ... no
Checking for libmp3lame (for mencoder) ... no
Checking for mencoder ... yes
Checking for fastmemcpy ... yes
Checking for UniquE RAR File Library ... yes
Checking for TV interface ... yes
Checking for Video 4 Linux TV interface ... yes
Checking for Video 4 Linux 2 TV interface ... yes
Checking for TV teletext interface ... yes
Checking for Radio interface ... no
Checking for Capture for Radio interface ... no
Checking for Video 4 Linux 2 Radio interface ... no
Checking for Video 4 Linux Radio interface ... no
Checking for Video 4 Linux 2 MPEG PVR interface ... yes
Checking for audio select() ... yes
Checking for ftp ... yes
Checking for vstream client ... no
Checking for byte order ... little-endian
Checking for OSD menu ... no
Checking for Subtitles sorting ... yes
Checking for XMMS inputplugin support ... no
Checking for inet6 ... yes
Checking for gethostbyname2 ... yes
Checking for GUI ... no
Checking for automatic gdb attach ... no
Checking for compiler support for noexecstack ... yes
Checking for joystick ... no
Checking for lirc ... no
Checking for lircc ... no
Checking for color console output ... no
Checking for DVD support (libdvdnav) ... no
Creating config.mak
Creating config.h

Config files successfully generated by ./configure  !

  Install prefix: /usr/local
  Data directory: /usr/local/share/mplayer
  Config direct.: /usr/local/etc/mplayer

  Byte order: little-endian
  Optimizing for: pentium-m

  Languages:
    Messages/GUI: en
    Manual pages: en

  Enabled optional drivers:
    Input: ftp pvr tv-teletext tv-v4l2 tv-v4l tv cddb cdda libdvdcss(internal) dvdread(internal) vcd dvb smb network
    Codecs: libavcodec qtx real xanim win32 faad2 libmpeg2 liba52 mp3lib libtheora tremor(internal) libmad liblzo gif
    Audio output: alsa esd arts oss sdl mpegpes(dvb)
    Video output: sdl gif89a pnm jpeg png mpegpes(dvb) fbdev svga caca aa xvidix cvidix opengl dga xv x11 xover md5sum tga
    Audio filters:
  Disabled optional drivers:
    Input: dvdnav vstream radio live555 nemesi
    Codecs: x264 xvid libdv libamr_wb libamr_nb faac musepack libdca speex toolame twolame
    Audio output: sun openal jack polyp v4l2 ivtv dxr2 nas
    Video output: v4l2 ivtv dxr3 dxr2 vesa zr zr2 ggi xmga mga winvidix 3dfx xvmc dfbmga directfb bl xvr100 tdfx_vid s3fb tdfxfb
    Audio filters: ladspa

'config.h' and 'config.mak' contain your configuration options.
Note: If you alter theses files (for instance CFLAGS) MPlayer may no longer
      compile *** DO NOT REPORT BUGS if you tweak these files ***

'make' will now compile MPlayer and 'make install' will install it.
Note: On non-Linux systems you might need to use 'gmake' instead of 'make'.

Please check mtrr settings at /proc/mtrr (see DOCS/HTML/en/video.html#mtrr)

Check configure.log if you wonder why an autodetection failed (make sure
development headers/packages are installed).

NOTE: The --enable-* parameters unconditionally force options on, completely
skipping autodetection. This behavior is unlike what you may be used to from
autoconf-based configure scripts that can decide to override you. This greater
level of control comes at a price. You may have to provide the correct compiler
and linker flags yourself.
If you used one of these options (except --enable-gui and similar ones that
turn on internal features) and experience a compilation or linking failure,
make sure you have passed the necessary compiler/linker flags to configure.

If you suspect a bug, please read DOCS/HTML/en/bugreports.html.
Wkleiłem całość, bo nie czuję sie jeszcze dobrze w analizie takich rzeczy.
Ale szybko to nadrobię, obiecuję :)
Tylko pomóżcie mi tym razem to przeanalizować.

Czy któraś z powyższych pozycji z opisem "no" jest istotna?

Dzięki z góry za czas i pomoc.

edit TheUsh : do zamieszczania dużego tekstu najlepiej użyć tagów [ code][ /code] ;)

TheUsh

  • Gość
MPlayer - kompilacja i dużo komunikatów
« Odpowiedź #4 dnia: 2008-02-21, 19:23:08 »
Wystarczyło żebyś zauważył komunikat "Config files successfully generated by ./configure  !" i to, że nigdzie nie ma napisanego "error" lub czegoś w tym rodzaju ;) Teraz wydaj komendę "make" i z poziomu administratora (root'a) komendę "make install"

addos2

  • Gość
MPlayer - kompilacja i dużo komunikatów
« Odpowiedź #5 dnia: 2008-02-22, 11:00:08 »
Właśnie brakowało mi tych "code" "/code"
Dzięki za poprawienie :)

Odnośnie wygenerowanego pliku "configure": zauważyłem, że jest taki komunikat, tylko martwią mnie te ostrzeżenia "no".

Nie wiem czy zauważyłeś, ale pomimo tego, że mój CPU to i686 to jest rozpoznawany jako i386. Czy coś sie może popaprać jeśli w przyszłości skompiluje jądro a MPlayer będzie skompilowany na aktualnych ustawieniach? I co jeśli dorzucę nowe kodeki? Zadziałają z takim MPlayerem?

TheUsh

  • Gość
MPlayer - kompilacja i dużo komunikatów
« Odpowiedź #6 dnia: 2008-02-22, 12:15:01 »
Co do kodeków to spójrz np. na "Checking for Win32 codecs ... yes (using /usr/lib/codecs)". Oznacza to, że np. wszelkie kodeki w dll'ach (te windziane) możesz wrzucać do tego katalogu i powinno działać ;)

Tymi "no" to się nie martw, mplayer będzie działać poprawnie. ./configure po prostu szukał np. czego użyć do wyświetlania obrazu i znalazł chociaż jeden sposób, bo nie zgłosił błędu. Te "no" dotyczą często różnych bibliotek , które dublują funkcje innych, które zostały już znalezione i oznaczone jako "yes" ;)

addos2

  • Gość
MPlayer - kompilacja i dużo komunikatów
« Odpowiedź #7 dnia: 2008-02-22, 17:36:45 »
I chyba już ostatnie pytanie:

Jeśli zainstaluję MPlayera do konkretnego katalogu (a nie do /usr), to wszystkie pliki będą razem.
Czy mam rozumieć, że wystarczy spakować taki katalog i w razie czego, w przyszłości mogę go sobie rozpakować po ponownym postawieniu Linuksa? Tak, żeby już nie trzeba było wydawać poleceń "configure, make, make install" albo przenieść na inny komputer?

Z góry dziękuję za wszelkie wyjaśnienia :)

Jeżeli temat jest wyczerpująco omówiony i nic więcej nie będę chciał dodać, to co dalej? W regulaminie nic na ten temat nie widzę. Na niektórych forach dopisuje się [ROZW.] do tematu, czy klika POMÓGŁ, czy inne takie.

PS. Coraz bardziej mi się podoba Linux. Wybrałem co prawda dystrybucję bardziej zaawansowaną i trudniejszą, ale więcej się dzięki temu uczę.... a to lubię.... oczywiście dzięki pomocy na forum :) Na początku trochę mnie to przytłoczyło, ale już jest OK :)

Jeszcze raz dziękuję :)

TheUsh

  • Gość
MPlayer - kompilacja i dużo komunikatów
« Odpowiedź #8 dnia: 2008-02-22, 18:11:02 »
Właśnie, tak z ciekawości, co to za dystrybucja? ;)

Radzę ci poszukać w rezpozytoriach swojej dystrybucji programu checkinstall, wykonuje się go zamiast make install i prócz zainstalowania programu, tworzy on również paczkę binarną (deb, rpm lub tgz) do twojej dystrybucji, dzięki czemu ponowna instalacja zostanie sprowadzona do kliknięcia w tę paczkę ;)

arctgx

  • Gość
MPlayer - kompilacja i dużo komunikatów
« Odpowiedź #9 dnia: 2008-02-22, 21:20:37 »
Robienie własnych paczek (choćby za pomocą checkinstall) polecałbym bardziej ze względu na porządek w systemie. Nie paczkowana biblioteka potrafi odejść w zapomnienie i robić zamieszanie w rodzaju "symbol lookup error", gdy odpalimy korzystający z niej programik (paczkowane w końcu też, ale łatwiej usuwać całe paczki lub je zastępować), ale potrzebujący jej w innej wersji.

Przez to, że kiedyś nie spaczkowałem zbudowanej ze źródełek biblioteki libdrm, została mi ona w systemie do czasu, kiedy nie była już w stanie współpracować z nowszymi sterami akceleracji 3D. Nim doszedłem, że to ona winna, minęło pół roku wieszania systemu przy próbach ładowania DRI w Xorg. Wersje z paczek dostarczały mi nowych libdrm, ale w innym miejscu(/usr/lib) i stara sobie wciąż istniała w /lib.  Wystarczyło spaczkować libdrm pod nazwą taką samą jak nazwa paczki debianowej.

A z przenośnością może być różnie, bo przy budowaniu programów mogą zostać wybrane flagi kompilatora przeznaczone np. dla procka, pod którym odpaliłeś configure, by wykorzystać jego instrukcje. Flagi te można zadeklarować ręcznie w zmiennych środowiskowych tak, by były wspólne dla obu maszyn.

addos2

  • Gość
MPlayer - kompilacja i dużo komunikatów
« Odpowiedź #10 dnia: 2008-02-23, 12:39:50 »
Jaka dystrybucja?   Heh... Slackware 12.0  :)
Co do checkinstall, to nie widze tego w repo :(

freerider

  • Gość
MPlayer - kompilacja i dużo komunikatów
« Odpowiedź #11 dnia: 2008-02-23, 14:15:23 »
zainstaluj sobie program slapt-get dostępny tutaj polecenie: installpkg slapt-get-0.9.12c-i386-1.tgz
następnie wyedytuj plik /etc/slapt-get/slapt-getrc dodaj do niego takie wpisy

SOURCE=http://darkstar.ist.utl.pt/slackware/addon/slacky/slackware-12.0/
SOURCE=http://slacky.uglyplace.org/repository/slackware-12.0/
SOURCE=http://filer-1.filearena.net/pub/slackware/addon/slacky/slackware-12.0/

zapisz zmiany i wydaj polecenie: slapt-get --update

teraz jak bedziesz chcial cokolwiek zainstalowac to tylko wpiszesz
slapt-get --install nazwa_programu

nie bedziesz miał problemów z kompilacją, slapt-get wyszuka, pobierze i zainstaluje  program + zalezności automatycznie :)

addos2

  • Gość
MPlayer - kompilacja i dużo komunikatów
« Odpowiedź #12 dnia: 2008-02-28, 11:16:22 »
W sumie zadziałało, tyle, że mam teraz MPlayer po włosku... co zrobić, żeby ściągało się w wersji angielskiej. Nie znam włoskiego, ale nie widzę opcji do zmiany języka :)