[Gelöst] Bekomme Graphtft nicht kompiliert :/

  • Hi Leute,


    ich habe mich an den Wikieintrag gehalten aber leider steigt der compiler mit folgender Meldung aus:


    Code
    /usr/bin/ld: graphtft.o: relocation R_X86_64_32S against `vtable for cGraphTFTMenu' can not be used when making a shared object; recompile with -fPIC
    graphtft.o: could not read symbols: Bad value
    collect2: ld gab 1 als Ende-Status zurück
    make: *** [libvdr-graphtft.so] Fehler 1


    Ich verwende die Sourcen aus dem SVN. Die Option -fPIC habe ich angegeben, leider ohne Erfolg.


    Irgendwelche Ideen?


    Gruß
    Atech


    Edit: Habe es hinbekommen - genaueres weiter unten :)

    HTPC:
    Softtware: Archlinux mit VDR aus Archvdr repo (1.7.31 mit softhddevice) und xbmc 12.2 Frodo stable
    Hardware: Coolermaster 260 mit Core I3 540, 4 GB Kingst. Ram, GA.H55M-D2H, PCIe 16X RiserCard, NVIDIA 430GT, TT3600USB, TT3650-CI USB, Samsung SSD 640, WD Blue 1TB (WD10TP), IR Einschalter, imon Display, mce FB und 12 Kanal Atmolight (4 Led Streifen) über DFatmo und Boblight

    Einmal editiert, zuletzt von Atechsystem ()

  • Ich verwende die Sourcen aus dem SVN. Die Option -fPIC habe ich angegeben, leider ohne Erfolg.


    das glaube ich erst wenn ich es sehe, zeig doch mal die Zeile wo er graphtft.c mit der Option -fPIC compiliert.


    Gerald


    HP Proliant MicroServer Gen8, Xeon E3-1230, 12 GB RAM, 3xWD red 2TB im RAID 5, 2xSundtek MediaTV Home DVB-C/T, L4M TWIN-C/T, Ubuntu Server 14.04.1, Plex Media Server
    Samsung UE55H6470

  • Hi,


    ich habe das in die CFLAGS eingetragen:


    CFLAGS="$CFLAGS -fPIC"


    So habe ich es jedenfalls für ein arch PKGBUILD gefunden. Kann ich es dem compiler direkt übergeben? Oder muss ich das Makefile ändern? Sorry ich bin noch recht neu beim kompilieren.


    Danke und Gruß
    Atech

    HTPC:
    Softtware: Archlinux mit VDR aus Archvdr repo (1.7.31 mit softhddevice) und xbmc 12.2 Frodo stable
    Hardware: Coolermaster 260 mit Core I3 540, 4 GB Kingst. Ram, GA.H55M-D2H, PCIe 16X RiserCard, NVIDIA 430GT, TT3600USB, TT3650-CI USB, Samsung SSD 640, WD Blue 1TB (WD10TP), IR Einschalter, imon Display, mce FB und 12 Kanal Atmolight (4 Led Streifen) über DFatmo und Boblight

  • ich habe das in die CFLAGS eingetragen:


    CFLAGS="$CFLAGS -fPIC"


    Ich möchte die Zeile sehen mit der graphtft.c compiliert wird. Ich will sehen ob deine Einstellung Erfolg hatte. Du zeigst ja in deinem ersten Post nur die Zeile vom Linker. Aktuell habe ich keine Lust mir die Sourcen zu holen und es selbst zu probieren, aber du hast sie ja schon.


    Gerald


    HP Proliant MicroServer Gen8, Xeon E3-1230, 12 GB RAM, 3xWD red 2TB im RAID 5, 2xSundtek MediaTV Home DVB-C/T, L4M TWIN-C/T, Ubuntu Server 14.04.1, Plex Media Server
    Samsung UE55H6470

  • Klar, das sollst du ja auch nicht. Ich habe jetzt einfach mal mehr kopiert:


    Code
    g++ -march=x86-64 -mtune=generic -O2 -pipe -g -ggdb -O0 -c -D__STDC_CONSTANT_MACROS -D_GNU_SOURCE -DPLUGIN_NAME_I18N='"graphtft"' -DHAVE_IMAGE_MAGICK -DHAVE_IMLIB -DWITH_SYSINFO -DWITH_TCP_COM -DWITH_TOUCH -DHAVE_DFB -DHAVE_FFMPEG -DHAVE_SWSCALE -fopenmp -I/usr/include/ImageMagick   -I/usr/include/include -I../../../../DVB/include -I. -I./imlibrenderer -I./imlibrenderer/fbrenderer -I./imlibrenderer/dvbrenderer -I./dfbrenderer -I./imlibrenderer/dmyrenderer `pkg-config libgtop-2.0 --cflags` `directfb-config --cflags` -I/usr/include -I/usr/include/libavcodec -I/usr/include -I/usr/include/libswscale -o renderer.o renderer.c
    g++ -march=x86-64 -mtune=generic -O2 -pipe -g -ggdb -O0 -c -D__STDC_CONSTANT_MACROS -D_GNU_SOURCE -DPLUGIN_NAME_I18N='"graphtft"' -DHAVE_IMAGE_MAGICK -DHAVE_IMLIB -DWITH_SYSINFO -DWITH_TCP_COM -DWITH_TOUCH -DHAVE_DFB -DHAVE_FFMPEG -DHAVE_SWSCALE -fopenmp -I/usr/include/ImageMagick   -I/usr/include/include -I../../../../DVB/include -I. -I./imlibrenderer -I./imlibrenderer/fbrenderer -I./imlibrenderer/dvbrenderer -I./dfbrenderer -I./imlibrenderer/dmyrenderer `pkg-config libgtop-2.0 --cflags` `directfb-config --cflags` -I/usr/include -I/usr/include/libavcodec -I/usr/include -I/usr/include/libswscale -o dfbrenderer/dfbrenderer.o dfbrenderer/dfbrenderer.c
    g++ -march=x86-64 -mtune=generic -O2 -pipe -g -ggdb -O0 -c -D__STDC_CONSTANT_MACROS -D_GNU_SOURCE -DPLUGIN_NAME_I18N='"graphtft"' -DHAVE_IMAGE_MAGICK -DHAVE_IMLIB -DWITH_SYSINFO -DWITH_TCP_COM -DWITH_TOUCH -DHAVE_DFB -DHAVE_FFMPEG -DHAVE_SWSCALE -fopenmp -I/usr/include/ImageMagick   -I/usr/include/include -I../../../../DVB/include -I. -I./imlibrenderer -I./imlibrenderer/fbrenderer -I./imlibrenderer/dvbrenderer -I./dfbrenderer -I./imlibrenderer/dmyrenderer `pkg-config libgtop-2.0 --cflags` `directfb-config --cflags` -I/usr/include -I/usr/include/libavcodec -I/usr/include -I/usr/include/libswscale -o dfbrenderer/cache.o dfbrenderer/cache.c
    g++ -march=x86-64 -mtune=generic -O2 -pipe -g -ggdb -O0 -shared graphtft.o dspitems.o display.o i18n.o setup.o osd.o scan.o theme.o common.o sysinfo.o touchthread.o imlibrenderer/imlibrenderer.o imlibrenderer/fbrenderer/fbrenderer.o tcpchannel.o imlibrenderer/dvbrenderer/player.o imlibrenderer/dvbrenderer/dvbrenderer.o imlibrenderer/dvbrenderer/mpeg2encoder.o imlibrenderer/dvbrenderer/quantize.o comthread.o renderer.o dfbrenderer/dfbrenderer.o dfbrenderer/cache.o `imlib2-config --libs` `Magick++-config --libs` `pkg-config libgtop-2.0 --libs` `directfb-config --libs` -lavcodec   -lswscale   -o libvdr-graphtft.so
    /usr/bin/ld: graphtft.o: relocation R_X86_64_32S against `vtable for cGraphTFTMenu' can not be used when making a shared object; recompile with -fPIC


    Ich denke aber du meinst das hier:


    Code
    g++ -march=x86-64 -mtune=generic -O2 -pipe -g -ggdb -O0 -shared graphtft.o dspitems.o display.o i18n.o setup.o osd.o scan.o theme.o common.o sysinfo.o touchthread.o imlibrenderer/imlibrenderer.o imlibrenderer/fbrenderer/fbrenderer.o tcpchannel.o imlibrenderer/dvbrenderer/player.o imlibrenderer/dvbrenderer/dvbrenderer.o imlibrenderer/dvbrenderer/mpeg2encoder.o imlibrenderer/dvbrenderer/quantize.o comthread.o renderer.o dfbrenderer/dfbrenderer.o dfbrenderer/cache.o `imlib2-config --libs` `Magick++-config --libs` `pkg-config libgtop-2.0 --libs` `directfb-config --libs` -lavcodec   -lswscale   -o libvdr-graphtft.so
    /usr/bin/ld: graphtft.o: relocation R_X86_64_32S against `vtable for cGraphTFTMenu' can not be used when making a shared object; recompile with -fPIC


    Ich kann nicht rauslesen ob die Option gefruchtet hat....

    HTPC:
    Softtware: Archlinux mit VDR aus Archvdr repo (1.7.31 mit softhddevice) und xbmc 12.2 Frodo stable
    Hardware: Coolermaster 260 mit Core I3 540, 4 GB Kingst. Ram, GA.H55M-D2H, PCIe 16X RiserCard, NVIDIA 430GT, TT3600USB, TT3650-CI USB, Samsung SSD 640, WD Blue 1TB (WD10TP), IR Einschalter, imon Display, mce FB und 12 Kanal Atmolight (4 Led Streifen) über DFatmo und Boblight

  • Code
    g++ -march=x86-64 -mtune=generic -O2 -pipe -g -ggdb -O0 -c -D__STDC_CONSTANT_MACROS -D_GNU_SOURCE -DPLUGIN_NAME_I18N='"graphtft"' -DHAVE_IMAGE_MAGICK -DHAVE_IMLIB -DWITH_SYSINFO -DWITH_TCP_COM -DWITH_TOUCH -DHAVE_DFB -DHAVE_FFMPEG -DHAVE_SWSCALE -fopenmp -I/usr/include/ImageMagick   -I/usr/include/include -I../../../../DVB/include -I. -I./imlibrenderer -I./imlibrenderer/fbrenderer -I./imlibrenderer/dvbrenderer -I./dfbrenderer -I./imlibrenderer/dmyrenderer `pkg-config libgtop-2.0 --cflags` `directfb-config --cflags` -I/usr/include -I/usr/include/libavcodec -I/usr/include -I/usr/include/libswscale -o renderer.o renderer.c
    g++ -march=x86-64 -mtune=generic -O2 -pipe -g -ggdb -O0 -c -D__STDC_CONSTANT_MACROS -D_GNU_SOURCE -DPLUGIN_NAME_I18N='"graphtft"' -DHAVE_IMAGE_MAGICK -DHAVE_IMLIB -DWITH_SYSINFO -DWITH_TCP_COM -DWITH_TOUCH -DHAVE_DFB -DHAVE_FFMPEG -DHAVE_SWSCALE -fopenmp -I/usr/include/ImageMagick   -I/usr/include/include -I../../../../DVB/include -I. -I./imlibrenderer -I./imlibrenderer/fbrenderer -I./imlibrenderer/dvbrenderer -I./dfbrenderer -I./imlibrenderer/dmyrenderer `pkg-config libgtop-2.0 --cflags` `directfb-config --cflags` -I/usr/include -I/usr/include/libavcodec -I/usr/include -I/usr/include/libswscale -o dfbrenderer/dfbrenderer.o dfbrenderer/dfbrenderer.c
    g++ -march=x86-64 -mtune=generic -O2 -pipe -g -ggdb -O0 -c -D__STDC_CONSTANT_MACROS -D_GNU_SOURCE -DPLUGIN_NAME_I18N='"graphtft"' -DHAVE_IMAGE_MAGICK -DHAVE_IMLIB -DWITH_SYSINFO -DWITH_TCP_COM -DWITH_TOUCH -DHAVE_DFB -DHAVE_FFMPEG -DHAVE_SWSCALE -fopenmp -I/usr/include/ImageMagick   -I/usr/include/include -I../../../../DVB/include -I. -I./imlibrenderer -I./imlibrenderer/fbrenderer -I./imlibrenderer/dvbrenderer -I./dfbrenderer -I./imlibrenderer/dmyrenderer `pkg-config libgtop-2.0 --cflags` `directfb-config --cflags` -I/usr/include -I/usr/include/libavcodec -I/usr/include -I/usr/include/libswscale -o dfbrenderer/cache.o dfbrenderer/cache.c
    g++ -march=x86-64 -mtune=generic -O2 -pipe -g -ggdb -O0 -shared graphtft.o dspitems.o display.o i18n.o setup.o osd.o scan.o theme.o common.o sysinfo.o touchthread.o imlibrenderer/imlibrenderer.o imlibrenderer/fbrenderer/fbrenderer.o tcpchannel.o imlibrenderer/dvbrenderer/player.o imlibrenderer/dvbrenderer/dvbrenderer.o imlibrenderer/dvbrenderer/mpeg2encoder.o imlibrenderer/dvbrenderer/quantize.o comthread.o renderer.o dfbrenderer/dfbrenderer.o dfbrenderer/cache.o `imlib2-config --libs` `Magick++-config --libs` `pkg-config libgtop-2.0 --libs` `directfb-config --libs` -lavcodec   -lswscale   -o libvdr-graphtft.so
    /usr/bin/ld: graphtft.o: relocation R_X86_64_32S against `vtable for cGraphTFTMenu' can not be used when making a shared object; recompile with -fPIC


    Die ersten 3 Zeilen sind compiler Anweisungen, aber da fehlt wieder die Zeile für graphtft.c, ist aber auch egal, deine -fPIC-Anweisung wurde nicht genommen. Da bleibt dir nichts anderes übrig, als ein wenig mehr Studium des Makefiles.


    Ich denke aber du meinst das hier:

    Code
    g++ -march=x86-64 -mtune=generic -O2 -pipe -g -ggdb -O0 -shared graphtft.o dspitems.o display.o i18n.o setup.o osd.o scan.o theme.o common.o sysinfo.o touchthread.o imlibrenderer/imlibrenderer.o imlibrenderer/fbrenderer/fbrenderer.o tcpchannel.o imlibrenderer/dvbrenderer/player.o imlibrenderer/dvbrenderer/dvbrenderer.o imlibrenderer/dvbrenderer/mpeg2encoder.o imlibrenderer/dvbrenderer/quantize.o comthread.o renderer.o dfbrenderer/dfbrenderer.o dfbrenderer/cache.o `imlib2-config --libs` `Magick++-config --libs` `pkg-config libgtop-2.0 --libs` `directfb-config --libs` -lavcodec   -lswscale   -o libvdr-graphtft.so
    /usr/bin/ld: graphtft.o: relocation R_X86_64_32S against `vtable for cGraphTFTMenu' can not be used when making a shared object; recompile with -fPIC


    Nein, das meine ich nicht, dass ist wieder die Linker-Anweisung, da ist es schon zu spät.


    Gerald


    HP Proliant MicroServer Gen8, Xeon E3-1230, 12 GB RAM, 3xWD red 2TB im RAID 5, 2xSundtek MediaTV Home DVB-C/T, L4M TWIN-C/T, Ubuntu Server 14.04.1, Plex Media Server
    Samsung UE55H6470

  • Mal als Tipp für Atechsystem: per Linux Kommando "script" kann man die komplette Ausgabe von make in ne Datei leiten (vorher "make clean" damit auch wirklich den kompletten Lauf gibt). Und per http://pastebin.com/ kann man das (und das makefile auch gleich, oder hierfür den Direktlink zum makefile im GIT posten) dann stressfrei ins Forum setzen. Weil so wie das jetzt läuft ist das ja irgendwie sehr mühselig ;)


    cu

  • Vielen Dank für eure Hilfe. Ich werde mir das makefile heute Abend mal genau anschauen und dann Berichten. Den Tipp mit der script Option werde ich mal austesten.


    Gruß Atech

    HTPC:
    Softtware: Archlinux mit VDR aus Archvdr repo (1.7.31 mit softhddevice) und xbmc 12.2 Frodo stable
    Hardware: Coolermaster 260 mit Core I3 540, 4 GB Kingst. Ram, GA.H55M-D2H, PCIe 16X RiserCard, NVIDIA 430GT, TT3600USB, TT3650-CI USB, Samsung SSD 640, WD Blue 1TB (WD10TP), IR Einschalter, imon Display, mce FB und 12 Kanal Atmolight (4 Led Streifen) über DFatmo und Boblight

  • Dank eurer Hilfe und ein bisschen Makefile Studium + google habe ich es jetzt geschafft.


    Ich musste:


    Im Makefile
    - den Eintrag: DEFINES += -D__STDC_CONSTANT_MACROS
    - den Eintrag: CXXFLAGS += -fPIC
    ergänzen.


    Dann hat es durchkompiliert. Vielleicht hilft es ja mal dem ein oder anderen.


    Gruß
    Atech

    HTPC:
    Softtware: Archlinux mit VDR aus Archvdr repo (1.7.31 mit softhddevice) und xbmc 12.2 Frodo stable
    Hardware: Coolermaster 260 mit Core I3 540, 4 GB Kingst. Ram, GA.H55M-D2H, PCIe 16X RiserCard, NVIDIA 430GT, TT3600USB, TT3650-CI USB, Samsung SSD 640, WD Blue 1TB (WD10TP), IR Einschalter, imon Display, mce FB und 12 Kanal Atmolight (4 Led Streifen) über DFatmo und Boblight

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!