vdr-plugin-vnsiserver
vdr-plugin-vnsiserver copied to clipboard
vdr-plugin-vnsiserver: compiling error
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.
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
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?
your build system does not meet requirements. either it lacks pkg-config or properly installed vdr.pc