Summary: | error compiling kdemultimedia-3.1.94/mpeglib_artsplug/decoderBaseObject_impl.h on solaris 8 | ||
---|---|---|---|
Product: | [Unmaintained] mpeglib | Reporter: | David Rutitsky <drutitsky> |
Component: | general | Assignee: | Martin Vogt <mvogt> |
Status: | RESOLVED DUPLICATE | ||
Severity: | normal | CC: | jjm |
Priority: | NOR | ||
Version: | unspecified | ||
Target Milestone: | --- | ||
Platform: | Compiled Sources | ||
OS: | Solaris | ||
Latest Commit: | Version Fixed In: | ||
Sentry Crash Report: |
Description
David Rutitsky
2004-01-11 12:21:37 UTC
I am having the same problem with kde 3.2.0 using GCC 3.3.2. To fix it, in decoderBaseObject_impl.cpp, switch the order of the includes between decoderBaseObject_impl.h and ../mpeglib/lib/decoder/decoderPlugin.h so it looks like: #include <queue> #include <iostream> #include <connect.h> #include "decoderBaseObject_impl.h" #include "../mpeglib/lib/decoder/decoderPlugin.h" #include "debug.h" This solved the problem for me, both in 3.1.95 and 3.2.0. -Aaron Fixed file in question. Sorry, I looked the wrong way. The issue still happends on 3.2.2 The problem was not fixed. I still need to swap the two include lines. This failure happens with gcc 3.3.x and 3.4.1 and is still present in KDE 3.3rc2. Please swap the order of these two include files and check it in. make[3]: Entering directory `/var/tmp/kde/archive/3.3/kdemultimedia-3.3.0/mpeglib_artsplug' creating libarts_mpeglib_la.all_cc.cc ... if /bin/bash ../libtool --silent --mode=compile --tag=CXX g++ -DHAVE_CONFIG_H -I. -I. -I.. -I../mpeglib/lib -I/opt/kde3/3.3rc2/include/artsc -threads -I/opt/kde/tools/include/glib-2.0 -I/opt/kde/tools/lib/glib-2.0/include -I/opt/kde3/3.3rc2/include/arts -I/opt/kde3/3.3rc2/include -I/opt/qt/qt-3.3.2-2/include -I/opt/kde/tools/include -DQT_THREAD_SUPPORT -D_REENTRANT -D_POSIX_PTHREAD_SEMANTICS -DUSE_SOLARIS -DSVR4 -Wnon-virtual-dtor -Wno-long-long -Wundef -Wall -W -Wpointer-arith -Wwrite-strings -g -O2 -fno-exceptions -fno-check-new -fno-common -DQT_CLEAN_NAMESPACE -DQT_NO_ASCII_CAST -DQT_NO_STL -DQT_NO_COMPAT -DQT_NO_TRANSLATION -MT libarts_mpeglib_la.all_cc.lo -MD -MP -MF ".deps/libarts_mpeglib_la.all_cc.Tpo" -c -o libarts_mpeglib_la.all_cc.lo libarts_mpeglib_la.all_cc.cc; \ then mv -f ".deps/libarts_mpeglib_la.all_cc.Tpo" ".deps/libarts_mpeglib_la.all_cc.Plo"; else rm -f ".deps/libarts_mpeglib_la.all_cc.Tpo"; exit 1; fi creating libarts_mpeglib_la.all_cpp.cpp ... if /bin/bash ../libtool --silent --mode=compile --tag=CXX g++ -DHAVE_CONFIG_H -I. -I. -I.. -I../mpeglib/lib -I/opt/kde3/3.3rc2/include/artsc -threads -I/opt/kde/tools/include/glib-2.0 -I/opt/kde/tools/lib/glib-2.0/include -I/opt/kde3/3.3rc2/include/arts -I/opt/kde3/3.3rc2/include -I/opt/qt/qt-3.3.2-2/include -I/opt/kde/tools/include -DQT_THREAD_SUPPORT -D_REENTRANT -D_POSIX_PTHREAD_SEMANTICS -DUSE_SOLARIS -DSVR4 -Wnon-virtual-dtor -Wno-long-long -Wundef -Wall -W -Wpointer-arith -Wwrite-strings -g -O2 -fno-exceptions -fno-check-new -fno-common -DQT_CLEAN_NAMESPACE -DQT_NO_ASCII_CAST -DQT_NO_STL -DQT_NO_COMPAT -DQT_NO_TRANSLATION -MT libarts_mpeglib_la.all_cpp.lo -MD -MP -MF ".deps/libarts_mpeglib_la.all_cpp.Tpo" -c -o libarts_mpeglib_la.all_cpp.lo libarts_mpeglib_la.all_cpp.cpp; \ then mv -f ".deps/libarts_mpeglib_la.all_cpp.Tpo" ".deps/libarts_mpeglib_la.all_cpp.Plo"; else rm -f ".deps/libarts_mpeglib_la.all_cpp.Tpo"; exit 1; fi In file included from decoderBaseObject_impl.cpp:19, from libarts_mpeglib_la.all_cpp.cpp:2: decoderBaseObject_impl.h:67: error: ISO C++ forbids declaration of `queue' with no type decoderBaseObject_impl.h:67: error: expected `;' before '<' token In file included from libarts_mpeglib_la.all_cpp.cpp:2: decoderBaseObject_impl.cpp: In constructor `DecoderBaseObject_impl::DecoderBaseObject_impl()': decoderBaseObject_impl.cpp:49: error: `m_packetQueue' undeclared (first use this function) decoderBaseObject_impl.cpp:49: error: (Each undeclared identifier is reported only once for each function it appears in.) decoderBaseObject_impl.cpp: In destructor `virtual DecoderBaseObject_impl::~DecoderBaseObject_impl()': decoderBaseObject_impl.cpp:70: error: `m_packetQueue' undeclared (first use this function) decoderBaseObject_impl.cpp: In member function `virtual void DecoderBaseObject_impl::process_indata(Arts::DataPacket<Arts::mcopbyte>*)': decoderBaseObject_impl.cpp:177: error: `m_packetQueue' undeclared (first use this function) decoderBaseObject_impl.cpp: In member function `void DecoderBaseObject_impl::processQueue()': decoderBaseObject_impl.cpp:184: error: `m_packetQueue' undeclared (first use this function) nullPlayObject_impl.cpp: At global scope: nullPlayObject_impl.cpp:26: warning: unused parameter 'filename' make[3]: *** [libarts_mpeglib_la.all_cpp.lo] Error 1 make[3]: Leaving directory `/var/tmp/kde/archive/3.3/kdemultimedia-3.3.0/mpeglib_artsplug' make[2]: *** [all] Error 2 make[2]: Leaving directory `/var/tmp/kde/archive/3.3/kdemultimedia-3.3.0/mpeglib_artsplug' make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory `/var/tmp/kde/archive/3.3/kdemultimedia-3.3.0' make: *** [all] Error 2 If you include decoderBaseObject_impl.h before ../mpeglib/lib/decoder/decoderPlugin.h then everything compiles fine. I don't know why the order matters, but it does. This same fix works for gcc 3.2.x, gcc 3.3.x and 3.4.x. -Aaron changin #include "../mpeglib/lib/decoder/decoderPlugin.h" #include "decoderBaseObject_impl.h" to #include "decoderBaseObject_impl.h" #include "../mpeglib/lib/decoder/decoderPlugin.h" Works for me with gcc-3.4.2 and gcc-3.3.2. We hope it will be fixed, cause its an old known compilation bug. This bug is fixed now: http://bugs.kde.org/show_bug.cgi?id=70269#c12 |