Am Friday 12 March 2010 16:05:01 schrieb Frank Schaefer:
> Pascal Stumpf schrieb:
> > Well: Since v4l is found on the system by cmake, it tries to
> > compile it with webcam support. However, since the necessary
> > headers are only included by #ifdef __linux__, compilation fails. I
>
> It definitely shouldn't fail. The code should compile on non-Linux
> systems, too.
> Please post the error messages you get with the unmodified code.
>
> Hmm... Is it possible that FreeBSD claims to be Linux (that __linux__ is
> defined there, too) ? ;)
Nope, it’s not, and that is exactly the problem. The v4l headers aren’t 
#included on non-Linux systems, so the v4l_* functions aren’t found. I’ll 
post the exact error messages when I’m back on FreeBSD.
>
> > have now tried removing the "defined (__linux__)" stuff in the
> > sourcecode, but it seems there are problems with the header
> > files provided by the multimedia/v4l_compat port:
> >
> > [  0%] Built target kopete_automoc
> > [ 10%] Built target kopete
> > [ 10%] Built target kopete_videodevice_automoc
> > [ 10%] Building CXX object
> > libkopete/avdevice/CMakeFiles/kopete_videodevice.dir/kopete_videodevice_a
> >utomoc.o In file included from /usr/local/include/linux/videodev.h:17,
> >                  from /home/pascal/src/kopete-
> > build/libkopete/avdevice/../../../kopete/libkopete/avdevice/videodevice.h
> >:52, from /home/pascal/src/kopete-
> > build/libkopete/avdevice/../../../kopete/libkopete/avdevice/videodevicepo
> >ol.h:31, from /home/pascal/src/kopete-
> > build/libkopete/avdevice/moc_videodevicepool.cpp:10,
> >                  from /home/pascal/src/kopete-
> > build/libkopete/avdevice/kopete_videodevice_automoc.cpp:4:
> > /usr/local/include/linux/videodev2.h:67: error: declaration does
> > not declare anything
> > /usr/local/include/linux/videodev2.h:72: error: declaration does
> > not declare anything
> > *** Error code 1
> >
> > Stop in /home/pascal/src/kopete-build.
> > *** Error code 1
> >
> > Stop in /home/pascal/src/kopete-build.
> > *** Error code 1
> >
> > Stop in /home/pascal/src/kopete-build.
> >
> >
> > The lines in question are:
> > typedef uint64_t __u64;
> > and
> > typedef int64_t __s64;
> >
> > Could this possibly have anything to do with the architecture
> > (amd64)? :/
>
> Hmm, we have the following lines in videodevice.cpp:
>
> #include <asm/types.h>
> #undef __STRICT_ANSI__
> #ifndef __u64 //required by videodev.h
> #define __u64 unsigned long long
> #endif // __u64
> #ifndef __s64 //required by videodev.h
> #define __s64 signed long long
> #endif // __s64
>
> Wehre did you put the #include for your videodev.h  ?
I’ve now solved this problem simply by removing the #defines of __u64 and 
__s64 everywhere in the code. It seems videodev2.h (which is #included by 
videodev.h) is adding the typedefs for compatibility, but breaks code which 
does the #defines by itself. :/

So: Kopete now compiled successfully, supposedly with V4L2 support, but I 
still cannot add a webcam. Is there a way to tell kopete which device to use? 
Or are there further modifications required?

Pascal

-- 
PGP Fingerprint: 05C8 AE29 4147 6933 0EA9 C0C9 89B2 5B38 8AC4 D66B
_______________________________________________
kopete-devel mailing list
kopete-devel@kde.org
https://mail.kde.org/mailman/listinfo/kopete-devel

Reply via email to