1. I downloaded the plugin using got clone. 2. I patched vdr, that went OK and compiled.
But compiling the plugin does not go fine.
3. It complaints about #include <vdr/xxxx.h> directives. Fine: I created a symlink /usr/include/vdr pointing to my vdr src dir. 4. Then something that I could not figure out:
# make g++ -g -O3 -Wall -Werror=overloaded-virtual -Wno-parentheses -fPIC -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -c -DPLUGIN_NAME_I18N='"ttxtsubs"' -o ttxtsubsdisplayer.o ttxtsubsdisplayer.c ttxtsubsdisplayer.c: In member function ‘virtual void cTtxtSubsPlayer::PES_data(uchar*, int, bool, const tTeletextSubtitlePage*, int)’: ttxtsubsdisplayer.c:116:57: error: invalid use of incomplete type ‘struct tTeletextSubtitlePage’ ttxtsubsdisplayer.h:46:84: error: forward declaration of ‘struct tTeletextSubtitlePage’ ttxtsubsdisplayer.c:116:58: error: invalid use of incomplete type ‘const struct tTeletextSubtitlePage’ ttxtsubsdisplayer.h:46:84: error: forward declaration of ‘const struct tTeletextSubtitlePage’ ttxtsubsdisplayer.c:121:49: error: invalid use of incomplete type ‘struct tTeletextSubtitlePage’ ttxtsubsdisplayer.h:46:84: error: forward declaration of ‘struct tTeletextSubtitlePage’ ttxtsubsdisplayer.c:121:50: error: invalid use of incomplete type ‘const struct tTeletextSubtitlePage’ ttxtsubsdisplayer.h:46:84: error: forward declaration of ‘const struct tTeletextSubtitlePage’ ttxtsubsdisplayer.c:121:88: error: invalid use of incomplete type ‘struct tTeletextSubtitlePage’ ttxtsubsdisplayer.h:46:84: error: forward declaration of ‘struct tTeletextSubtitlePage’ ttxtsubsdisplayer.c:121:89: error: invalid use of incomplete type ‘const struct tTeletextSubtitlePage’ ttxtsubsdisplayer.h:46:84: error: forward declaration of ‘const struct tTeletextSubtitlePage’ ttxtsubsdisplayer.c:122:35: error: invalid use of incomplete type ‘struct tTeletextSubtitlePage’ ttxtsubsdisplayer.h:46:84: error: forward declaration of ‘struct tTeletextSubtitlePage’ ttxtsubsdisplayer.c:122:36: error: invalid use of incomplete type ‘const struct tTeletextSubtitlePage’ ttxtsubsdisplayer.h:46:84: error: forward declaration of ‘const struct tTeletextSubtitlePage’ ttxtsubsdisplayer.c:122:81: error: invalid use of incomplete type ‘struct tTeletextSubtitlePage’ ttxtsubsdisplayer.h:46:84: error: forward declaration of ‘struct tTeletextSubtitlePage’ ttxtsubsdisplayer.c:122:82: error: invalid use of incomplete type ‘const struct tTeletextSubtitlePage’ ttxtsubsdisplayer.h:46:84: error: forward declaration of ‘const struct tTeletextSubtitlePage’ Makefile:65: recipe for target 'ttxtsubsdisplayer.o' failed make: *** [ttxtsubsdisplayer.o] Error 1
Well. tTeletextSubtitlePage is defined in vdr/channels.h. That was not included the ttxtsubsdisplayer.h... I tried to add it into it, but does not work. Somehow the error is still the same. I tried and copied the struct definition alone from channels.h into that, and it worked a bit better, but I could not understand why!
The the same class came haunting back in some other .c file compilation... Went back to the clean setup, nothing is edited now by me.
Googled with the gcc error messages, and found talk about circular refences and includes.
I don't know... What next?
br. jarif
On 20.12.2014 0:22, Jari Fredrisson wrote:
- I downloaded the plugin using got clone.
- I patched vdr, that went OK and compiled.
But compiling the plugin does not go fine.
- It complaints about #include <vdr/xxxx.h> directives. Fine: I created
a symlink /usr/include/vdr pointing to my vdr src dir. 4. Then something that I could not figure out:
# make g++ -g -O3 -Wall -Werror=overloaded-virtual -Wno-parentheses -fPIC -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -c -DPLUGIN_NAME_I18N='"ttxtsubs"' -o ttxtsubsdisplayer.o ttxtsubsdisplayer.c ttxtsubsdisplayer.c: In member function ‘virtual void cTtxtSubsPlayer::PES_data(uchar*, int, bool, const tTeletextSubtitlePage*, int)’: ttxtsubsdisplayer.c:116:57: error: invalid use of incomplete type ‘struct tTeletextSubtitlePage’ ttxtsubsdisplayer.h:46:84: error: forward declaration of ‘struct tTeletextSubtitlePage’ ttxtsubsdisplayer.c:116:58: error: invalid use of incomplete type ‘const struct tTeletextSubtitlePage’ ttxtsubsdisplayer.h:46:84: error: forward declaration of ‘const struct tTeletextSubtitlePage’ ttxtsubsdisplayer.c:121:49: error: invalid use of incomplete type ‘struct tTeletextSubtitlePage’ ttxtsubsdisplayer.h:46:84: error: forward declaration of ‘struct tTeletextSubtitlePage’ ttxtsubsdisplayer.c:121:50: error: invalid use of incomplete type ‘const struct tTeletextSubtitlePage’ ttxtsubsdisplayer.h:46:84: error: forward declaration of ‘const struct tTeletextSubtitlePage’ ttxtsubsdisplayer.c:121:88: error: invalid use of incomplete type ‘struct tTeletextSubtitlePage’ ttxtsubsdisplayer.h:46:84: error: forward declaration of ‘struct tTeletextSubtitlePage’ ttxtsubsdisplayer.c:121:89: error: invalid use of incomplete type ‘const struct tTeletextSubtitlePage’ ttxtsubsdisplayer.h:46:84: error: forward declaration of ‘const struct tTeletextSubtitlePage’ ttxtsubsdisplayer.c:122:35: error: invalid use of incomplete type ‘struct tTeletextSubtitlePage’ ttxtsubsdisplayer.h:46:84: error: forward declaration of ‘struct tTeletextSubtitlePage’ ttxtsubsdisplayer.c:122:36: error: invalid use of incomplete type ‘const struct tTeletextSubtitlePage’ ttxtsubsdisplayer.h:46:84: error: forward declaration of ‘const struct tTeletextSubtitlePage’ ttxtsubsdisplayer.c:122:81: error: invalid use of incomplete type ‘struct tTeletextSubtitlePage’ ttxtsubsdisplayer.h:46:84: error: forward declaration of ‘struct tTeletextSubtitlePage’ ttxtsubsdisplayer.c:122:82: error: invalid use of incomplete type ‘const struct tTeletextSubtitlePage’ ttxtsubsdisplayer.h:46:84: error: forward declaration of ‘const struct tTeletextSubtitlePage’ Makefile:65: recipe for target 'ttxtsubsdisplayer.o' failed make: *** [ttxtsubsdisplayer.o] Error 1
Well. tTeletextSubtitlePage is defined in vdr/channels.h. That was not included the ttxtsubsdisplayer.h... I tried to add it into it, but does not work. Somehow the error is still the same. I tried and copied the struct definition alone from channels.h into that, and it worked a bit better, but I could not understand why!
The the same class came haunting back in some other .c file compilation... Went back to the clean setup, nothing is edited now by me.
Googled with the gcc error messages, and found talk about circular refences and includes.
I don't know... What next?
br. jarif
Oh.. and this is Raspbian Wheezy, and gcc (Debian 4.6.3-14+rpi1) 4.6.3