I just applied the vdr-1.4.4-1 maintainance patch and some plugins failed to compile. I could fix all problems within the plugins except for extrecmenu.
I got the following error:
In file included from patchfont.c:5: ../../../include/vdr/font.h:35: error: ISO C++ forbids declaration of `uint32_t ' with no type ../../../include/vdr/font.h:35: error: Syntaxfehler before `;' token
and so on...
I found out that on my Debian-system uint32_t is declared in /usr/include/stdint.h. After including that file in include/vdr/font.h extrecmenu compiled again.
Regards Peter
Peter Pinnau wrote:
I just applied the vdr-1.4.4-1 maintainance patch and some plugins failed to compile. I could fix all problems within the plugins except for extrecmenu.
I got the following error:
In file included from patchfont.c:5: ../../../include/vdr/font.h:35: error: ISO C++ forbids declaration of `uint32_t ' with no type ../../../include/vdr/font.h:35: error: Syntaxfehler before `;' token
and so on...
I found out that on my Debian-system uint32_t is declared in /usr/include/stdint.h. After including that file in include/vdr/font.h extrecmenu compiled again.
Strange - apparently on my system '#include <stdlib.h>' brings in uint32_t.
I'll add the '#include <stdint.h>' in the next maintenance patch.
Klaus
Peter Pinnau wrote:
I just applied the vdr-1.4.4-1 maintainance patch and some plugins failed to compile. I could fix all problems within the plugins except for extrecmenu.
Please advise me how fix compile errors with remote and streamdev plugins.
Plugin streamdev: make[1]: Entering directory `/usr/local/src/vdr-1.4.4-1/PLUGINS/src/streamdev' g++ -W -Woverloaded-virtual -O2 -c -D_GNU_SOURCE -DHAVE_AUTOPID -I../../../include -I../../../../DVB/include -I. -o client/socket.o client/socket.c client/socket.c: In member function `bool cClientSocket::Command(const std::string&, uint, uint)': client/socket.c:57: error: `uint64' was not declared in this scope client/socket.c:57: error: expected `;' before "elapsed" client/socket.c:59: error: `elapsed' was not declared in this scope make[1]: *** [client/socket.o] Error 1
Plugin remote: make[1]: Entering directory `/usr/local/src/vdr-1.4.4-1/PLUGINS/src/remote-0.3.8' g++ -fPIC -O2 -Wall -Woverloaded-virtual -c -D_GNU_SOURCE -DPLUGIN_NAME_I18N='"remote"' -DREMOTE_FEATURE_LIRC -DREMOTE_FEATURE_TCPIP -I../../../include remote.c In file included from remote.c:20: remote.h:46: error: `uint64' does not name a type remote.h:55: error: `uint64' does not name a type remote.h:56: error: `uint64' has not been declared remote.h:56: error: ISO C++ forbids declaration of `code' with no type remote.h:57: error: `uint64' has not been declared remote.h:57: error: ISO C++ forbids declaration of `Code' with no type remote.h:69: error: `uint64' does not name a type remote.h:72: error: `uint64' does not name a type remote.h:73: error: `uint64' has not been declared remote.h:73: error: ISO C++ forbids declaration of `code' with no type remote.h:104: error: `uint64' does not name a type remote.h:105: error: `uint64' has not been declared remote.h:105: error: ISO C++ forbids declaration of `code' with no type remote.h:106: error: `uint64' has not been declared remote.h:106: error: ISO C++ forbids declaration of `Code' with no type In file included from remote.c:22: remotetcp.h:28: error: `uint64' does not name a type remote.c:25:26: linux/stdint.h: No such file or directory remote.c:59: error: `bool cRemoteGeneric::Put' is not a static member of `class cRemoteGeneric' remote.c:59: error: `uint64' was not declared in this scope remote.c:59: error: expected primary-expression before "bool" remote.c:59: error: expected primary-expression before "bool" remote.c:61: error: initializer expression list treated as compound expression remote.c:61: error: expected `,' or `;' before '{' token
SK
Suur Karu wrote:
Peter Pinnau wrote:
I just applied the vdr-1.4.4-1 maintainance patch and some plugins failed to compile. I could fix all problems within the plugins except for extrecmenu.
Please advise me how fix compile errors with remote and streamdev plugins.
Plugin streamdev: make[1]: Entering directory `/usr/local/src/vdr-1.4.4-1/PLUGINS/src/streamdev' g++ -W -Woverloaded-virtual -O2 -c -D_GNU_SOURCE -DHAVE_AUTOPID -I../../../include -I../../../../DVB/include -I. -o client/socket.o client/socket.c client/socket.c: In member function `bool cClientSocket::Command(const std::string&, uint, uint)': client/socket.c:57: error: `uint64' was not declared in this scope client/socket.c:57: error: expected `;' before "elapsed" client/socket.c:59: error: `elapsed' was not declared in this scope make[1]: *** [client/socket.o] Error 1 ...
Add the line
#define uint64 uint64_t
to VDR/tools.h.
I'll add this in the next maintenance patch, too. In the long run all plugins should change this to uint64_t, though.
Klaus
Klaus Schmidinger wrote:
Add the line
#define uint64 uint64_t
to VDR/tools.h.
I'll add this in the next maintenance patch, too. In the long run all plugins should change this to uint64_t, though.
better, re-add it as typedef as it was before. Attached.
Cheers,
Udo
--- tools.h.orig 2006-12-03 15:42:47.000000000 +0100 +++ tools.h 2006-12-03 15:42:49.756970280 +0100 @@ -23,6 +23,7 @@ #include <sys/types.h>
typedef unsigned char uchar; +typedef uint64_t uint64;
extern int SysLogLevel;
Udo Richter wrote:
Klaus Schmidinger wrote:
Add the line
#define uint64 uint64_t
to VDR/tools.h.
I'll add this in the next maintenance patch, too. In the long run all plugins should change this to uint64_t, though.
better, re-add it as typedef as it was before. Attached.
I want to get rid of this completely, so it will be a #define that, if possible, causes a compile time warning. And at some later point I'll remove that #define.
Klaus
On Sunday 03 December 2006 15:53, Klaus Schmidinger wrote:
Udo Richter wrote:
Klaus Schmidinger wrote:
Add the line
#define uint64 uint64_t
to VDR/tools.h.
I'll add this in the next maintenance patch, too. In the long run all plugins should change this to uint64_t, though.
better, re-add it as typedef as it was before. Attached.
I want to get rid of this completely, so it will be a #define that, if possible, causes a compile time warning. And at some later point I'll remove that #define.
Klaus
Why not just keep it away. I think it is not too hard to replace that in the plugins.
Matthias
Matthias Schwarzott wrote:
On Sunday 03 December 2006 15:53, Klaus Schmidinger wrote:
Udo Richter wrote:
Klaus Schmidinger wrote:
Add the line
#define uint64 uint64_t
to VDR/tools.h.
I'll add this in the next maintenance patch, too. In the long run all plugins should change this to uint64_t, though.
better, re-add it as typedef as it was before. Attached.
I want to get rid of this completely, so it will be a #define that, if possible, causes a compile time warning. And at some later point I'll remove that #define.
Klaus
Why not just keep it away. I think it is not too hard to replace that in the plugins.
Matthias
You're probably right. By the time I'll release the next maintenance patch I guess all plugins will have been updated, anyway.
Klaus
Klaus Schmidinger wrote:
Matthias Schwarzott wrote:
Why not just keep it away. I think it is not too hard to replace that in the plugins.
You're probably right. By the time I'll release the next maintenance patch I guess all plugins will have been updated, anyway.
This strikes on the control plugin and the streamdev plugin, both rather un-maintained. Plus, plugin maintainers may need to make sure / test, that adapted plugins also compile on 1.4.4 and earlier, as this may need an additional #include <stdint.h> here and there.
What about keeping it for the 1.4.x cycle and dropping it in the first 1.5.x version?
Cheers,
Udo
Udo Richter wrote:
Klaus Schmidinger wrote:
Matthias Schwarzott wrote:
Why not just keep it away. I think it is not too hard to replace that in the plugins.
You're probably right. By the time I'll release the next maintenance patch I guess all plugins will have been updated, anyway.
This strikes on the control plugin and the streamdev plugin, both rather un-maintained. Plus, plugin maintainers may need to make sure / test, that adapted plugins also compile on 1.4.4 and earlier, as this may need an additional #include <stdint.h> here and there.
What about keeping it for the 1.4.x cycle and dropping it in the first 1.5.x version?
That's what I was heading at with the #define...
Klaus
On Sunday 03 December 2006 15:36, Suur Karu wrote:
Peter Pinnau wrote:
I just applied the vdr-1.4.4-1 maintainance patch and some plugins failed to compile. I could fix all problems within the plugins except for extrecmenu.
Please advise me how fix compile errors with remote and streamdev plugins.
Plugin streamdev: make[1]: Entering directory `/usr/local/src/vdr-1.4.4-1/PLUGINS/src/streamdev' g++ -W -Woverloaded-virtual -O2 -c -D_GNU_SOURCE -DHAVE_AUTOPID -I../../../include -I../../../../DVB/include -I. -o client/socket.o client/socket.c client/socket.c: In member function `bool cClientSocket::Command(const std::string&, uint, uint)': client/socket.c:57: error: `uint64' was not declared in this scope client/socket.c:57: error: expected `;' before "elapsed" client/socket.c:59: error: `elapsed' was not declared in this scope make[1]: *** [client/socket.o] Error 1
You should just replace every remaining uint64 by uint64_t.
Matthias
I demand that Suur Karu may or may not have written...
Peter Pinnau wrote:
I just applied the vdr-1.4.4-1 maintainance patch and some plugins failed to compile. I could fix all problems within the plugins except for extrecmenu.
Please advise me how fix compile errors with remote and streamdev plugins.
[snip]
client/socket.c:57: error: `uint64' was not declared in this scope
[snip]
Replace all instances of "uint64" with "uint64_t".