[sane-devel] Compile problem in 1.0.11
John Coppens
jcoppens at usa.net
Thu Apr 10 17:05:48 BST 2003
Hi again, Henning
The first time I had posted the message to the wrong list (Video4Linux
instead of sane-devel), but surprise I got this reply that solved the
problem elegantly:
Ronald Bultje <rbultje at ronald.bitfreak.net> wrote:
Use #define _LINUX_TIME_H 1 just before including videodev.h or
videodev2.h.
(I did that in v4l.c and all problems went away :-)
John
On Thu, 10 Apr 2003 10:51:34 +0200
Henning Meier-Geinitz <henning at meier-geinitz.de> wrote:
> Hi,
>
> On Thu, Apr 10, 2003 at 12:46:27AM -0300, John Coppens wrote:
> > Get this error on compiling sane-backends 1.0.11:
>
> Please provide more details. This is which Linux version? Which
> version of glibc? Which distribution? Which gcc?
>
> I haven't seen any bug reports about this ever. The include hasn't
> changed since ... well ... since the beginning of the time :-)
>
> > gcc -c -g -O2 -W -Wall -DHAVE_CONFIG_H -I. -I. -I../include
> > -I../include-DPATH_SANE_CONFIG_DIR=/usr/local/etc/sane.d
> > -DPATH_SANE_DATA_DIR=/usr/local/share -DV_MAJOR=1 -DV_MINOR=0
> > -DBACKEND_NAME=v4l -DLIBDIR=/usr/local/lib/sane v4l.c -fPIC -DPIC -o
> > v4l.lo
> > In file included from /usr/include/linux/videodev2.h:16,
> > from /usr/include/linux/videodev.h:14,
> > from v4l.c:76:
> > /usr/include/linux/time.h:9: redefinition of `struct timespec'
> > /usr/include/linux/time.h:88: redefinition of `struct timeval'
> > /usr/include/linux/time.h:93: redefinition of `struct timezone'
> > /usr/include/linux/time.h:124: redefinition of `struct itimerval'
> >
> > In v4l.c, line 67, I changed:
> >
> > #include <sys/time.h>
> > to
> > #include <linux/time.h>
>
> That doesn't look right. We shouldn't include the low-level headers if
> th at's not absolutely necessary. However, I think we don't need
> sys/time.h anyway. At least for me it compiles without that include.
>
> > which eliminated two errors and left:
> >
> > In file included from v4l.c:67:
> > /usr/include/linux/time.h:9: redefinition of `struct timespec'
> > /usr/include/linux/time.h:88: redefinition of `struct timeval'
> >
> >
> > Any idea which other include references timespec again? Or just what
> > to do to get this working?
>
> Maybe one of the standard system headers includes sys/time.h?
>
> Are you sure that you have the headers that came with glibc in
> /usr/include/linux? Sometimes /usr/include/linux is a link to
> /usr/src/linux/include/linux, that causes all sorts of problems when
> the kernel headers change and is strongly discouraged.
>
> Bye,
> Henning
> _______________________________________________
> Sane-devel mailing list
> Sane-devel at www.mostang.com
> http://www.mostang.com/mailman/listinfo/sane-devel
More information about the sane-devel
mailing list