[h323plus] ptlib & h323plus compile problem on gcc 3.4.3

Simon Horne s.horne at packetizer.com
Tue Feb 12 01:18:40 EST 2008


Denis

The quickest fix is to compile

ptlib with --disable-v4l2 option and
h323plus with --disable-file option

I have now patched the filetransfer support for older GCC versions

Regards
Simon

> -----Original Message-----
> From: h323plus-bounces at lists.packetizer.com
> [mailto:h323plus-bounces at lists.packetizer.com]On Behalf Of Denis
> Kochmashev
> Sent: Tuesday, February 12, 2008 3:09 PM
> To: h323plus at lists.packetizer.com
> Subject: [h323plus] ptlib & h323plus compile problem on gcc 3.4.3
>
>
> Hello!
>
> Can't compile Ptlib plugins and H.323 Plus on RHEL4.  Please suggest what
> should I do.
>
> Ptlib:
>
> make opt
>
> g++  -DP_USE_PRAGMA -D_REENTRANT -fno-exceptions  -Wall  -fPIC -DPIC
> -DNDEBUG -I/usr/local/dev/h323plus/ptlib/include \
>  -L/usr/local/dev/h323plus/ptlib/lib \
> vidinput_names.cxx \
> -I. -shared vidinput_v4l2.cxx -o
> ../pwlib/device/videoinput/v4l2_pwplugin.so
> In file included from vidinput_v4l2.cxx:143:
> vidinput_v4l2.h:165: error: field `videoCapability' has incomplete type
> vidinput_v4l2.h:166: error: field `videoStreamParm' has incomplete type
> vidinput_v4l2.cxx:217: error: `V4L2_PIX_FMT_GREY' was not declared in this
> scope
> vidinput_v4l2.cxx:218: error: `V4L2_PIX_FMT_RGB32' was not
> declared in this
> scope
> vidinput_v4l2.cxx:219: error: `V4L2_PIX_FMT_BGR32' was not
> declared in this
> scope
> vidinput_v4l2.cxx:220: error: `V4L2_PIX_FMT_RGB24' was not
> declared in this
> scope
> vidinput_v4l2.cxx:221: error: `V4L2_PIX_FMT_BGR24' was not
> declared in this
> scope
> vidinput_v4l2.cxx:222: error: `V4L2_PIX_FMT_RGB565' was not
> declared in this
> scope
> vidinput_v4l2.cxx:223: error: `V4L2_PIX_FMT_RGB555' was not
> declared in this
> scope
> vidinput_v4l2.cxx:224: error: `V4L2_PIX_FMT_Y41P' was not declared in this
> scope
> vidinput_v4l2.cxx:225: error: `V4L2_PIX_FMT_YUV411P' was not declared in
> this scope
> vidinput_v4l2.cxx:226: error: `V4L2_PIX_FMT_NV21' was not declared in this
> scope
> vidinput_v4l2.cxx:227: error: `V4L2_PIX_FMT_YUV420' was not
> declared in this
> scope
> vidinput_v4l2.cxx:228: error: `V4L2_PIX_FMT_YUYV' was not declared in this
> scope
> vidinput_v4l2.cxx:229: error: `V4L2_PIX_FMT_YUV422P' was not declared in
> this scope
> vidinput_v4l2.cxx:230: error: `V4L2_PIX_FMT_YUYV' was not declared in this
> scope
> vidinput_v4l2.cxx:231: error: `V4L2_PIX_FMT_JPEG' was not declared in this
> scope
> vidinput_v4l2.cxx:232: error: `v4l2_fourcc' was not declared in this scope
> vidinput_v4l2.cxx:233: error: `v4l2_fourcc' was not declared in this scope
> vidinput_v4l2.cxx:234: error: `V4L2_PIX_FMT_MJPEG' was not
> declared in this
> scope
> vidinput_v4l2.cxx:235: error: `V4L2_PIX_FMT_UYVY' was not declared in this
> scope
> vidinput_v4l2.cxx: In member function `virtual BOOL
> PVideoInputDevice_V4L2::Open(const PString&, BOOL)':
> vidinput_v4l2.cxx:270: error: `VIDIOC_QUERYCAP' undeclared (first use this
> function)
> vidinput_v4l2.cxx:270: error: (Each undeclared identifier is reported only
> once for each function it appears in.)
> vidinput_v4l2.cxx:270: error: `videoCapability' undeclared (first use this
> function)
> vidinput_v4l2.cxx:277: error: `V4L2_CAP_READWRITE' undeclared (first use
> this function)
> vidinput_v4l2.cxx:278: error: `V4L2_CAP_STREAMING' undeclared (first use
> this function)
> vidinput_v4l2.cxx:279: error: `V4L2_CAP_ASYNCIO' undeclared
> (first use this
> function)
> vidinput_v4l2.cxx:287: error: `videoStreamParm' undeclared (first use this
> function)
> vidinput_v4l2.cxx:287: error: `V4L2_BUF_TYPE_VIDEO_CAPTURE' undeclared
> (first use this function)
> vidinput_v4l2.cxx:288: error: `VIDIOC_G_PARM' undeclared (first use this
> function)
> vidinput_v4l2.cxx:295: error: `V4L2_CAP_TIMEPERFRAME' undeclared
> (first use
> this function)
> vidinput_v4l2.cxx: In member function `virtual BOOL
> PVideoInputDevice_V4L2::Start()':
> vidinput_v4l2.cxx:349: error: aggregate `v4l2_buffer buf' has incomplete
> type and cannot be defined
> vidinput_v4l2.cxx:353: error: `V4L2_BUF_TYPE_VIDEO_CAPTURE' undeclared
> (first use this function)
> vidinput_v4l2.cxx:354: error: `V4L2_MEMORY_MMAP' undeclared
> (first use this
> function)
> vidinput_v4l2.cxx:357: error: `VIDIOC_QBUF' undeclared (first use this
> function)
> vidinput_v4l2.cxx:365: error: use of enum `v4l2_buf_type' without previous
> declaration
> vidinput_v4l2.cxx:365: error: invalid type in declaration before ';' token
> vidinput_v4l2.cxx:368: error: `VIDIOC_STREAMON' undeclared (first use this
> function)
> vidinput_v4l2.cxx: In member function `virtual BOOL
> PVideoInputDevice_V4L2::Stop()':
> vidinput_v4l2.cxx:385: error: `V4L2_BUF_TYPE_VIDEO_CAPTURE' undeclared
> (first use this function)
> vidinput_v4l2.cxx:388: error: `VIDIOC_STREAMOFF' undeclared
> (first use this
> function)
> vidinput_v4l2.cxx: In member function `virtual BOOL
> PVideoInputDevice_V4L2::SetVideoFormat(PVideoDevice::VideoFormat)':
> vidinput_v4l2.cxx:434: error: `V4L2_STD_PAL' undeclared (first use this
> function)
> vidinput_v4l2.cxx:435: error: `V4L2_STD_NTSC' undeclared (first use this
> function)
> vidinput_v4l2.cxx:436: error: `V4L2_STD_SECAM' undeclared (first use this
> function)
> vidinput_v4l2.cxx:439: error: `VIDIOC_S_STD' undeclared (first use this
> function)
> vidinput_v4l2.cxx: In member function `virtual int
> PVideoInputDevice_V4L2::GetNumChannels()':
> vidinput_v4l2.cxx:454: error: aggregate `v4l2_input videoEnumInput' has
> incomplete type and cannot be defined
> vidinput_v4l2.cxx:457: error: `VIDIOC_ENUMINPUT' undeclared
> (first use this
> function)
> vidinput_v4l2.cxx: In member function `virtual BOOL
> PVideoInputDevice_V4L2::SetChannel(int)':
> vidinput_v4l2.cxx:479: error: `VIDIOC_S_INPUT' undeclared (first use this
> function)
> vidinput_v4l2.cxx: In member function `virtual BOOL
> PVideoInputDevice_V4L2::SetColourFormat(const PString&)':
> vidinput_v4l2.cxx:518: error: aggregate `v4l2_format videoFormat' has
> incomplete type and cannot be defined
> vidinput_v4l2.cxx:519: error: invalid application of `sizeof' to
> incomplete
> type `v4l2_format'
> vidinput_v4l2.cxx:520: error: `V4L2_BUF_TYPE_VIDEO_CAPTURE' undeclared
> (first use this function)
> vidinput_v4l2.cxx:523: error: aggregate `v4l2_streamparm streamParm' has
> incomplete type and cannot be defined
> vidinput_v4l2.cxx:526: error: `VIDIOC_G_PARM' undeclared (first use this
> function)
> vidinput_v4l2.cxx:527: error: `V4L2_CAP_TIMEPERFRAME' undeclared
> (first use
> this function)
> vidinput_v4l2.cxx:535: error: `VIDIOC_G_FMT' undeclared (first use this
> function)
> vidinput_v4l2.cxx:543: error: `VIDIOC_S_FMT' undeclared (first use this
> function)
> vidinput_v4l2.cxx:561: error: `VIDIOC_S_PARM' undeclared (first use this
> function)
> vidinput_v4l2.cxx: In member function `virtual BOOL
> PVideoInputDevice_V4L2::SetFrameRate(unsigned int)':
> vidinput_v4l2.cxx:589: error: `videoStreamParm' undeclared (first use this
> function)
> vidinput_v4l2.cxx:593: error: `VIDIOC_S_PARM' undeclared (first use this
> function)
> vidinput_v4l2.cxx: In member function `virtual BOOL
> PVideoInputDevice_V4L2::GetFrameSizeLimits(unsigned int&, unsigned int&,
> unsigned int&, unsigned int&)':
> vidinput_v4l2.cxx:619: error: aggregate `v4l2_format fmt' has incomplete
> type and cannot be defined
> vidinput_v4l2.cxx:620: error: `V4L2_BUF_TYPE_VIDEO_CAPTURE' undeclared
> (first use this function)
> vidinput_v4l2.cxx:621: error: `VIDIOC_G_FMT' undeclared (first use this
> function)
> vidinput_v4l2.cxx:626: error: `VIDIOC_TRY_FMT' undeclared (first use this
> function)
> vidinput_v4l2.cxx: In member function `BOOL
> PVideoInputDevice_V4L2::SetMapping()':
> vidinput_v4l2.cxx:671: error: aggregate `v4l2_requestbuffers reqbuf' has
> incomplete type and cannot be defined
> vidinput_v4l2.cxx:673: error: `V4L2_BUF_TYPE_VIDEO_CAPTURE' undeclared
> (first use this function)
> vidinput_v4l2.cxx:674: error: `V4L2_MEMORY_MMAP' undeclared
> (first use this
> function)
> vidinput_v4l2.cxx:676: error: `VIDIOC_REQBUFS' undeclared (first use this
> function)
> vidinput_v4l2.cxx:680: error: missing `>' to terminate the
> template argument
> list
> vidinput_v4l2.cxx:680: error: missing `>' to terminate the
> template argument
> list
> vidinput_v4l2.cxx:689: error: aggregate `v4l2_buffer buf' has incomplete
> type and cannot be defined
> vidinput_v4l2.cxx:696: error: `VIDIOC_QUERYBUF' undeclared (first use this
> function)
> vidinput_v4l2.cxx: In member function `void
> PVideoInputDevice_V4L2::ClearMapping()':
> vidinput_v4l2.cxx:721: error: aggregate `v4l2_buffer buf' has incomplete
> type and cannot be defined
> vidinput_v4l2.cxx:722: error: `V4L2_BUF_TYPE_VIDEO_CAPTURE' undeclared
> (first use this function)
> vidinput_v4l2.cxx:723: error: `V4L2_MEMORY_MMAP' undeclared
> (first use this
> function)
> vidinput_v4l2.cxx:726: error: `VIDIOC_QUERYBUF' undeclared (first use this
> function)
> vidinput_v4l2.cxx: In member function `virtual BOOL
> PVideoInputDevice_V4L2::GetFrameDataNoDelay(BYTE*, PINDEX*)':
> vidinput_v4l2.cxx:758: error: aggregate `v4l2_buffer buf' has incomplete
> type and cannot be defined
> vidinput_v4l2.cxx:759: error: invalid application of `sizeof' to
> incomplete
> type `v4l2_buffer'
> vidinput_v4l2.cxx:760: error: `V4L2_BUF_TYPE_VIDEO_CAPTURE' undeclared
> (first use this function)
> vidinput_v4l2.cxx:761: error: `V4L2_MEMORY_MMAP' undeclared
> (first use this
> function)
> vidinput_v4l2.cxx:764: error: `VIDIOC_DQBUF' undeclared (first use this
> function)
> vidinput_v4l2.cxx:789: error: `VIDIOC_QBUF' undeclared (first use this
> function)
> vidinput_v4l2.cxx: In member function `BOOL
> PVideoInputDevice_V4L2::VerifyHardwareFrameSize(unsigned int, unsigned
> int)':
> vidinput_v4l2.cxx:832: error: aggregate `v4l2_format videoFormat' has
> incomplete type and cannot be defined
> vidinput_v4l2.cxx:833: error: `V4L2_BUF_TYPE_VIDEO_CAPTURE' undeclared
> (first use this function)
> vidinput_v4l2.cxx:834: error: aggregate `v4l2_streamparm streamParm' has
> incomplete type and cannot be defined
> vidinput_v4l2.cxx:839: error: `VIDIOC_G_FMT' undeclared (first use this
> function)
> vidinput_v4l2.cxx:846: error: `VIDIOC_G_PARM' undeclared (first use this
> function)
> vidinput_v4l2.cxx:847: error: `V4L2_CAP_TIMEPERFRAME' undeclared
> (first use
> this function)
> vidinput_v4l2.cxx:858: error: `VIDIOC_S_FMT' undeclared (first use this
> function)
> vidinput_v4l2.cxx:878: error: `VIDIOC_S_PARM' undeclared (first use this
> function)
> vidinput_v4l2.cxx: In member function `int
> PVideoInputDevice_V4L2::GetControlCommon(unsigned int, int*)':
> vidinput_v4l2.cxx:902: error: aggregate `v4l2_queryctrl q' has incomplete
> type and cannot be defined
> vidinput_v4l2.cxx:903: error: invalid application of `sizeof' to
> incomplete
> type `v4l2_queryctrl'
> vidinput_v4l2.cxx:905: error: `VIDIOC_QUERYCTRL' undeclared
> (first use this
> function)
> vidinput_v4l2.cxx:908: error: aggregate `v4l2_control c' has
> incomplete type
> and cannot be defined
> vidinput_v4l2.cxx:909: error: invalid application of `sizeof' to
> incomplete
> type `v4l2_control'
> vidinput_v4l2.cxx:911: error: `VIDIOC_G_CTRL' undeclared (first use this
> function)
> vidinput_v4l2.cxx: In member function `virtual int
> PVideoInputDevice_V4L2::GetBrightness()':
> vidinput_v4l2.cxx:920: error: `V4L2_CID_BRIGHTNESS' undeclared (first use
> this function)
> vidinput_v4l2.cxx: In member function `virtual int
> PVideoInputDevice_V4L2::GetWhiteness()':
> vidinput_v4l2.cxx:925: error: `V4L2_CID_WHITENESS' undeclared (first use
> this function)
> vidinput_v4l2.cxx: In member function `virtual int
> PVideoInputDevice_V4L2::GetColour()':
> vidinput_v4l2.cxx:930: error: `V4L2_CID_SATURATION' undeclared (first use
> this function)
> vidinput_v4l2.cxx: In member function `virtual int
> PVideoInputDevice_V4L2::GetContrast()':
> vidinput_v4l2.cxx:935: error: `V4L2_CID_CONTRAST' undeclared
> (first use this
> function)
> vidinput_v4l2.cxx: In member function `virtual int
> PVideoInputDevice_V4L2::GetHue()':
> vidinput_v4l2.cxx:940: error: `V4L2_CID_HUE' undeclared (first use this
> function)
> vidinput_v4l2.cxx: In member function `BOOL
> PVideoInputDevice_V4L2::SetControlCommon(unsigned int, int)':
> vidinput_v4l2.cxx:961: error: aggregate `v4l2_queryctrl q' has incomplete
> type and cannot be defined
> vidinput_v4l2.cxx:962: error: invalid application of `sizeof' to
> incomplete
> type `v4l2_queryctrl'
> vidinput_v4l2.cxx:964: error: `VIDIOC_QUERYCTRL' undeclared
> (first use this
> function)
> vidinput_v4l2.cxx:967: error: aggregate `v4l2_control c' has
> incomplete type
> and cannot be defined
> vidinput_v4l2.cxx:968: error: invalid application of `sizeof' to
> incomplete
> type `v4l2_control'
> vidinput_v4l2.cxx:975: error: `VIDIOC_S_CTRL' undeclared (first use this
> function)
> vidinput_v4l2.cxx: In member function `virtual BOOL
> PVideoInputDevice_V4L2::SetBrightness(unsigned int)':
> vidinput_v4l2.cxx:983: error: `V4L2_CID_BRIGHTNESS' undeclared (first use
> this function)
> vidinput_v4l2.cxx: In member function `virtual BOOL
> PVideoInputDevice_V4L2::SetWhiteness(unsigned int)':
> vidinput_v4l2.cxx:991: error: `V4L2_CID_WHITENESS' undeclared (first use
> this function)
> vidinput_v4l2.cxx: In member function `virtual BOOL
> PVideoInputDevice_V4L2::SetColour(unsigned int)':
> vidinput_v4l2.cxx:1000: error: `V4L2_CID_SATURATION' undeclared (first use
> this function)
> vidinput_v4l2.cxx: In member function `virtual BOOL
> PVideoInputDevice_V4L2::SetContrast(unsigned int)':
> vidinput_v4l2.cxx:1008: error: `V4L2_CID_CONTRAST' undeclared (first use
> this function)
> vidinput_v4l2.cxx: In member function `virtual BOOL
> PVideoInputDevice_V4L2::SetHue(unsigned int)':
> vidinput_v4l2.cxx:1016: error: `V4L2_CID_HUE' undeclared (first use this
> function)
> vidinput_v4l2.cxx: In member function `virtual void V4L2Names::Update()':
> vidinput_v4l2.cxx:1092: error: aggregate `v4l2_capability videoCaps' has
> incomplete type and cannot be defined
> vidinput_v4l2.cxx:1095: error: `VIDIOC_QUERYCAP' undeclared
> (first use this
> function)
> vidinput_v4l2.cxx:1096: error: `V4L2_CAP_VIDEO_CAPTURE' undeclared (first
> use this function)
> vidinput_v4l2.cxx: In member function `virtual PString
> V4L2Names::BuildUserFriendly(PString)':
> vidinput_v4l2.cxx:1144: error: aggregate `v4l2_capability videocap' has
> incomplete type and cannot be defined
> vidinput_v4l2.cxx:1146: error: `VIDIOC_QUERYCAP' undeclared
> (first use this
> function)
> make[2]: *** [../pwlib/device/videoinput/v4l2_pwplugin.so] Error 1
> make[2]: Leaving directory
> `/usr/local/dev/h323plus/ptlib_v1_12_0/plugins/vidinput_v4l2'
> make[1]: *** [opt] Error 2
> make[1]: Leaving directory `/usr/local/dev/h323plus/ptlib_v1_12_0/plugins'
> make: *** [opt] Error 2
>
> H.323 Plus:
>
> make opt
>
> g++  -DP_USE_PRAGMA -D_REENTRANT -fno-exceptions  -Wall  -fPIC -DPIC
> -DNDEBUG -DPTRACING -I/usr/local/dev/h323plus/openh323/include
> -I/usr/local/dev/h323plus/ptlib/include -Os
> -felide-constructors -Wreorder
> -c h323filetransfer.cxx -o
> /usr/local/dev/h323plus/openh323/lib/obj_linux_x86_r/h323filetransfer.o
> h323filetransfer.cxx: In member function `BOOL
> H323FileTransferCapability::OnReceivedPDU(const H245_GenericCapability&)':
> h323filetransfer.cxx:158: error: passing `const
> H245_ParameterIdentifier' as
> `this' argument of `PASN_Choice::operator PASN_Integer&()' discards
> qualifiers
> h323filetransfer.cxx:160: error: passing `const H245_ParameterValue' as
> `this' argument of `PASN_Choice::operator PASN_Integer&()' discards
> qualifiers
> h323filetransfer.cxx: In member function `virtual BOOL
> H323FileTransferChannel::Start()':
> h323filetransfer.cxx:302: warning: casting `H323Capability*' to `const
> H323FileTransferCapability&' does not dereference pointer
> h323filetransfer.cxx:305: warning: casting `H323Capability*' to `const
> H323FileTransferCapability&' does not dereference pointer
> h323filetransfer.cxx: In member function `H323FilePacket::opcodes
> H323FilePacket::GetPacketType()':
> h323filetransfer.cxx:1342: warning: cast to pointer from integer of
> different size
> make[1]: ***
> [/usr/local/dev/h323plus/openh323/lib/obj_linux_x86_r/h323filetransfer.o]
> Error 1
> make[1]: Leaving directory `/usr/local/dev/h323plus/h323plus/src'
> make: *** [opt] Error 2
>
> gcc -v
>
> Reading specs from /usr/lib/gcc/i386-redhat-linux/3.4.3/specs
> Configured with: ../configure --prefix=/usr --mandir=/usr/share/man
> --infodir=/usr/share/info --enable-shared --enable-threads=posix
> --disable-checking --with-system-zlib --enable-__cxa_atexit
> --disable-libunwind-exceptions --enable-java-awt=gtk
> --host=i386-redhat-linux
> Thread model: posix
> gcc version 3.4.3 20041212 (Red Hat 3.4.3-9.EL4)
>




More information about the h323plus mailing list