FernetMenta / vdr-plugin-vnsiserver

VDR plugin to handle XBMC clients.
GNU General Public License v2.0
16 stars 33 forks source link

vdr-plugin-vnsiserver: compiling error #53

Open ilgiznurgaliev opened 8 years ago

ilgiznurgaliev commented 8 years ago

Hi, I have just tried to compile the plugin but got the folowing error:


$ git clone https://github.com/FernetMenta/vdr-plugin-vnsiserver
Cloning into 'vdr-plugin-vnsiserver'...
remote: Counting objects: 1288, done.
remote: Compressing objects: 100% (25/25), done.
remote: Total 1288 (delta 9), reused 0 (delta 0), pack-reused 1263
Receiving objects: 100% (1288/1288), 486.92 KiB | 235.00 KiB/s, done.
Resolving deltas: 100% (929/929), done.

$ cd vdr-plugin-vnsiserver/

$ make
g++  -std=c++11 -c -D_GNU_SOURCE -DPLUGIN_NAME_I18N='"vnsiserver"' -DVNSI_SERVER_VERSION='"1.5.0"'  -o vnsi.o vnsi.c
g++  -std=c++11 -c -D_GNU_SOURCE -DPLUGIN_NAME_I18N='"vnsiserver"' -DVNSI_SERVER_VERSION='"1.5.0"'  -o bitstream.o bitstream.c
g++  -std=c++11 -c -D_GNU_SOURCE -DPLUGIN_NAME_I18N='"vnsiserver"' -DVNSI_SERVER_VERSION='"1.5.0"'  -o vnsiclient.o vnsiclient.c
vnsiclient.c: In member function ‘bool cVNSIClient::processTIMER_GetTypes(cRequestPacket&)’:
vnsiclient.c:1954:16: error: no matching function for call to ‘cResponsePacket::add_U32()
   resp.add_U32();
                ^
vnsiclient.c:1954:16: note: candidate is:
In file included from streamer.h:38:0,
                 from vnsiclient.c:31:
responsepacket.h:55:8: note: bool cResponsePacket::add_U32(uint32_t)
   bool add_U32(uint32_t ul);
        ^
responsepacket.h:55:8: note:   candidate expects 1 argument, 0 provided
make: *** [vnsiclient.o] Error 1

This is on Centos 7 with installed vdr 2.2.0. streamdev and dvbapi plugins have been compilled without any errors.

Any idea how to resolve this?

Thanks and regards, Casper.

Karl-opec commented 8 years ago

There are two compiling issues for vdr-2.2.0

You need to change in vnsiclient.c:1954:16 resp.add_U32(); to resp.add_U32(0); and in status.c:248:29 change (_i)->TimerChange(); to (_i)->SignalTimerChange();

these changes helped me to compile it for vdr-2.2.0

ilgiznurgaliev commented 8 years ago

Thanks Karl for your responce. After the changes you suggested it is still failing:

vnsiclient.c:1954 resp.add_U32(0); status.c:248 (*i)->SignalTimerChange();

$ make
.....
g++  -std=c++11 -c -D_GNU_SOURCE -DPLUGIN_NAME_I18N='"vnsiserver"' -DVNSI_SERVER_VERSION='"1.5.0"'  -o status.o status.c
g++  -std=c++11 -c -D_GNU_SOURCE -DPLUGIN_NAME_I18N='"vnsiserver"' -DVNSI_SERVER_VERSION='"1.5.0"'  -o vnsitimer.o vnsitimer.c
g++  -std=c++11  -shared vnsi.o bitstream.o vnsiclient.o channelscancontrol.o config.o cxsocket.o parser.o parser_AAC.o parser_AC3.o parser_DTS.o parser_h264.o parser_MPEGAudio.o parser_MPEGVideo.o parser_Subtitle.o parser_Teletext.o streamer.o recplayer.o requestpacket.o responsepacket.o vnsiserver.o hash.o recordingscache.o setup.o vnsiosd.o demuxer.o videobuffer.o videoinput.o channelfilter.o status.o vnsitimer.o -o libvdr-vnsiserver.so
/bin/ld: vnsi.o: relocation R_X86_64_32S against `_ZTV17cPluginVNSIServer' can not be used when making a shared object; recompile with -fPIC
vnsi.o: could not read symbols: Bad value
collect2: error: ld returned 1 exit status
make: *** [libvdr-vnsiserver.so] Error 1

Probably something else also should be changed? Any idea please?

FernetMenta commented 8 years ago

your build system does not meet requirements. either it lacks pkg-config or properly installed vdr.pc