[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: (Psion) plptools compilation error



cjw44@flatline.org.uk (Colin Watson) writes:

> andre.berger@topmail.de wrote:
> >cjw44@flatline.org.uk (Colin Watson) writes:
> >> andre.berger@topmail.de wrote:
> >> >Has anyone managed to compile plptools (unfortunately there's no
> >> >Debian package)? I found no email address, and I couldn't even find
> >> >out who's the author.
> >> 
> >> Where can we get the source code?
> >
> >Sorry, it's <ftp://ftp.to.com/pub/psion/tarballs/plptools-0.6.tar.gz>
> 
> Got it, thanks. For the address of the author, Fritz Elfert, look in
> some of the source files; for instance, it's on line 7 of plpftp/ftp.cc.
> 
> >> >Making all in plpftp
> >> >make[1]: Entering directory `/home/andre/plptools-0.6/plpftp'
> >> >g++ -DHAVE_CONFIG_H -I. -I. -I../include -I../lib    -O2 -Wall -c ftp.cc
> >> >ftp.cc: In function `int checkAbortHash(long int)':
> >> >ftp.cc:169: implicit declaration of function `int printf(...)'
> >> >ftp.cc:169: `stdout' undeclared (first use this function)
> >> 
> >> Looks like somebody forgot to #include <stdio.h>.
> >
> >Which means?
> 
> It's the author's fault. In C, if you use certain functions or
> variables, you need to include the appropriate "header files" into your
> program from the libraries that define them. For printf() et al, you
> need stdio, the standard input/output library. The author did include
> this, but only if you have the development readline libraries available;
> unfortunately this is bogus, because he uses things like printf() and
> stdout unconditionally.
> 
> (You probably want to have the development readline libraries installed
> while compiling this anyway. Install the libreadline4-dev package.)

ok

> Go to plpftp/ftp.cc line 46, remove that line (which should read
> '#include <stdio.h>'), and move it up to the topmost block of #include
> directives. 

I put it on top of them.

> The code then compiles fine - well, there are a few warnings
> (two-digit years - I can only hope this is just something that the Psion
> link protocol requires), but nothing fatal.

Now I get:

Making all in plpftp
make[1]: Entering directory `/home/andre/plptools-0.6/plpftp'
g++ -DHAVE_CONFIG_H -I. -I. -I../include -I../lib    -O2 -Wall -c ftp.cc
ftp.cc: In method `int ftp::session(rfsv &, rpcs &, int, char **)':
ftp.cc:339: warning: `%c' yields only last 2 digits of year in some locales
ftp.cc:369: warning: `%c' yields only last 2 digits of year in some locales
ftp.cc:461: warning: `%c' yields only last 2 digits of year in some locales
ftp.cc: In function `char ** do_completion(char *, int, int)':
ftp.cc:916: ANSI C++ prohibits conversion from `(char *, int)' to `(...)'
ftp.cc:937: ANSI C++ prohibits conversion from `(char *, int)' to `(...)'
ftp.cc: At top level:
ftp.cc:56: warning: `class rpcs * comp_r' defined but not used
make[1]: *** [ftp.o] Error 1
make[1]: Leaving directory `/home/andre/plptools-0.6/plpftp'
make: *** [all-recursive] Error 1

Maybe there's something wrong with my development equipment?

-- Andre



Reply to: