Kirjoittaja Aihe: VDR-Manager pluginin kääntäminen  (Luettu 3525 kertaa)

kojis

  • Käyttäjä
  • Viestejä: 98
    • Profiili
VDR-Manager pluginin kääntäminen
« : 17.01.14 - klo:17.50 »
Pitäisi kääntää VDR-Manager plugini, VDR on asennettu ja toimii hyvin mutta VDR-Manager pluginin kääntäminen ei onnistu. Kyseessä on debian 7 serveri ja VDR on asennettu suoraan apt-get:llä.

Lataan täältä kyseisen pluginin ja puran paketin, sen jälkeen yritän kääntää make komennolla ja saan seuraavan virheen:
Koodia: [Valitse]
make
g++  -c   vdrmanager.cpp
g++  -c   sock.cpp
g++  -c   vdrmanagerthread.cpp
g++  -c   select.cpp
g++  -c   handler.cpp
g++  -c   helpers.cpp
g++  -c   compressor.cpp
g++   -shared vdrmanager.o sock.o vdrmanagerthread.o select.o handler.o helpers.o compressor.o -o libvdr-vdrmanager.so -lz
/usr/bin/ld: vdrmanager.o: relocation R_X86_64_32S against `_ZTV11cVdrManager' can not be used when making a shared object; recompile with -fPIC
vdrmanager.o: could not read symbols: Bad value
collect2: error: ld returned 1 exit status
make: *** [libvdr-vdrmanager.so] Error 1

mrl586

  • Käyttäjä
  • Viestejä: 4638
    • Profiili
Vs: VDR-Manager pluginin kääntäminen
« Vastaus #1 : 17.01.14 - klo:18.03 »
Tuossa ehdotetaan käännösvalitsinta. Kokeile, auttaisiko se.

kojis

  • Käyttäjä
  • Viestejä: 98
    • Profiili
Vs: VDR-Manager pluginin kääntäminen
« Vastaus #2 : 17.01.14 - klo:18.31 »
Lukasin tuota README:tä ja siellä sanotaan:
Koodia: [Valitse]
If you use a vdr version lower then 1.7.36, use Makefile.pre.1.7.36
Oma VDR versio on 1.7.28, eli nimesin Makefile.pre.1.7.36 -> Makefile ja käänsin uudestaan ja se tulosti seuraavan:
Koodia: [Valitse]
g++ -g -O2 -Wall -Woverloaded-virtual -fPIC -g -c -D_GNU_SOURCE -DPLUGIN_NAME_I18N='"vdrmanager"' -I../../../include -I../../../../DVB/include vdrmanager.cpp

Kääntäminen tekee uuden "vdrmanager.o" tiedoston. Nimesin "vdrmanager.o" -> "libvdr-vdrmanager.so.1.7.28" ja siirsin kansioon "/usr/lib/vdr/plugins". Kun käynnistän VDR:än uudestaan se valittaa kuitenkin näin:
Koodia: [Valitse]
Restarting Linux Video Disk Recorder: vdr
Searching for plugins (VDR 1.7.28/1.7.28) (cache hit): epgsearch live conflictcheckonly quickepgsearch epgsearchonly streamdev-server
WARNING: The following plugins have been left out due to really binary incompatibility: vdrmanager.

nm

  • Käyttäjä
  • Viestejä: 16428
    • Profiili
Vs: VDR-Manager pluginin kääntäminen
« Vastaus #3 : 17.01.14 - klo:18.36 »
Kääntäminen tekee uuden "vdrmanager.o" tiedoston. Nimesin "vdrmanager.o" -> "libvdr-vdrmanager.so.1.7.28" ja siirsin kansioon "/usr/lib/vdr/plugins".

Juu, ei kyllä toimi noin. Kaikki .o:t pitää linkata dynaamiseksi kirjastoksi, kuten se aiemmin epäonnistunut käännös yritti tehdä.

Komenna make clean, jotta vanhat objektitiedostot poistetaan, ja aja sitten make. Mitä se nyt sanoo?

kojis

  • Käyttäjä
  • Viestejä: 98
    • Profiili
Vs: VDR-Manager pluginin kääntäminen
« Vastaus #4 : 17.01.14 - klo:18.52 »
Juu samaa mietin itsekkin, että .so tiedosto sieltä kait pitäs tulla.

Nyt ajoin "make all VDRDIR=/usr/include/vdr LIBDIR=/usr/lib/vdr/plugins":
Koodia: [Valitse]
make all VDRDIR=/usr/include/vdr LIBDIR=/usr/lib/vdr/plugins
g++ -g -g -Wall -Woverloaded-virtual -Wno-parentheses -O2 -fPIC -c -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_GNU_SOURCE -DPLUGIN_NAME_I18N='"vdrmanager"' -I/usr/include/dvb-s2api-liplianin -I/usr/include/vdr/include -I../../../../DVB/include vdrmanager.cpp
g++ -g -g -Wall -Woverloaded-virtual -Wno-parentheses -O2 -fPIC -c -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_GNU_SOURCE -DPLUGIN_NAME_I18N='"vdrmanager"' -I/usr/include/dvb-s2api-liplianin -I/usr/include/vdr/include -I../../../../DVB/include sock.cpp
g++ -g -g -Wall -Woverloaded-virtual -Wno-parentheses -O2 -fPIC -c -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_GNU_SOURCE -DPLUGIN_NAME_I18N='"vdrmanager"' -I/usr/include/dvb-s2api-liplianin -I/usr/include/vdr/include -I../../../../DVB/include vdrmanagerthread.cpp
g++ -g -g -Wall -Woverloaded-virtual -Wno-parentheses -O2 -fPIC -c -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_GNU_SOURCE -DPLUGIN_NAME_I18N='"vdrmanager"' -I/usr/include/dvb-s2api-liplianin -I/usr/include/vdr/include -I../../../../DVB/include select.cpp
g++ -g -g -Wall -Woverloaded-virtual -Wno-parentheses -O2 -fPIC -c -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_GNU_SOURCE -DPLUGIN_NAME_I18N='"vdrmanager"' -I/usr/include/dvb-s2api-liplianin -I/usr/include/vdr/include -I../../../../DVB/include handler.cpp
g++ -g -g -Wall -Woverloaded-virtual -Wno-parentheses -O2 -fPIC -c -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_GNU_SOURCE -DPLUGIN_NAME_I18N='"vdrmanager"' -I/usr/include/dvb-s2api-liplianin -I/usr/include/vdr/include -I../../../../DVB/include helpers.cpp
g++ -g -g -Wall -Woverloaded-virtual -Wno-parentheses -O2 -fPIC -shared vdrmanager.o sock.o vdrmanagerthread.o select.o handler.o helpers.o -o libvdr-vdrmanager.so

Ja nyt tulee automaattisesti "libvdr-vdrmanager.so" mutta käynnistäessä uudelleen valittaa vieläkin:
Koodia: [Valitse]
WARNING: The following plugins have been left out due to really binary incompatibility: vdrmanager.

nm

  • Käyttäjä
  • Viestejä: 16428
    • Profiili
Vs: VDR-Manager pluginin kääntäminen
« Vastaus #5 : 17.01.14 - klo:18.55 »
Ja nyt tulee automaattisesti "libvdr-vdrmanager.so" mutta käynnistäessä uudelleen valittaa vieläkin:
Koodia: [Valitse]
WARNING: The following plugins have been left out due to really binary incompatibility: vdrmanager.

No poistitko sen aiemmin asentamasi libvdr-vdrmanager.so.1.7.28-tiedoston?

kojis

  • Käyttäjä
  • Viestejä: 98
    • Profiili
Vs: VDR-Manager pluginin kääntäminen
« Vastaus #6 : 17.01.14 - klo:19.12 »
Kyllä poistin.

Postimies

  • Käyttäjä
  • Viestejä: 2644
    • Profiili
Vs: VDR-Manager pluginin kääntäminen
« Vastaus #7 : 18.01.14 - klo:17.24 »
VDR on hieman hankala. Paras ratkaisu on hakea VDR:n lähdekoodi ja siihen tarvittavat plugit ja kääntää kaikki. Plugit tarvitsevat ainakin osan VDR:n lähdekoodista. Plugarit kannattaa kuitenkin käätää uusiksi kun päivittää VDR:n. vdr-vdrmanager löytyy ainakin Gentoon paketinhallinnasta. E-topilla paljon vdr asiaa katso jos sieltä löytyisi valmiina.

kojis

  • Käyttäjä
  • Viestejä: 98
    • Profiili
Vs: VDR-Manager pluginin kääntäminen
« Vastaus #8 : 18.01.14 - klo:19.09 »
Eikös nuo tarvittavat VDR lähdekoodit tule vdr-dev paketin mukana?

Ei millään jaksaisi alkaa kääntämään kaikkea kun ei ole mitään takeita saanko niitä toimimaan ollenkaan.

Postimies

  • Käyttäjä
  • Viestejä: 2644
    • Profiili
Vs: VDR-Manager pluginin kääntäminen
« Vastaus #9 : 18.01.14 - klo:20.47 »
En ole käyttänyt Debinia. Ubuntuakin aika vähän vdr käytössä. VDR on onneksi nykyään paketinhallinnassa. Aikoinaan se piti aina kääntää itse. Debianin VDR lienee melko vanha. Itsellä nyt 2.0.2-r1 ja sekin on melko vanha versio. Etsi joku repo jossa tuoreet VDR paketit.

En ole ikinä käyttänyt vdrmanager plugaria ja en tiedä mihin tarvitaan...

VDR on melko pieni ohjelma ja sen kääntää nopeasti. XBMC sitten riippuvuuksineen voi kestää tuntejakin. Ja tilaakin voi kulua useampi giga. Aikoinaan tappelin vdr-xvdr ja xbmc-addon-xvdr plugien kanssa ja kääntäminen tuli tutuksi. Muistaakseni VDR:n header tiedostot tai lähdekoodi piti löytyä.

Mutta parhaan tuloksen saat kun käännät vdr:n ja plugarit samalla kääntäjällä & kirjastoilla.  Kyse on ns. binaariyhteensopivuudesta.

kojis

  • Käyttäjä
  • Viestejä: 98
    • Profiili
Vs: VDR-Manager pluginin kääntäminen
« Vastaus #10 : 18.01.14 - klo:21.08 »
Olisko jossain opasta missä neuvottaisi VDR + pluginien kääntäminen debianille (käytännössä ubuntu)?

Postimies

  • Käyttäjä
  • Viestejä: 2644
    • Profiili
Vs: VDR-Manager pluginin kääntäminen
« Vastaus #11 : 18.01.14 - klo:22.30 »
Lataa vdr lähdekoodi ja pura. Plugarit Plugins kansioon. lue ohjeet ja käännä.