Version: (using KDE KDE 3.1.94) Installed from: Compiled From Sources Compiler: gcc 3.2 sun sparc OS: Solaris decoderBaseObject_impl.h:67: syntax error before `*' token decoderBaseObject_impl.cpp: In constructor `DecoderBaseObject_impl::DecoderBaseObject_impl()': decoderBaseObject_impl.cpp:49: `m_packetQueue' undeclared (first use this function) decoderBaseObject_impl.cpp:49: (Each undeclared identifier is reported only once for each function it appears in.) /usr/local/gcc-3.2/include/c++/3.2/bits/stl_threads.h: At global scope: /usr/local/gcc-3.2/include/c++/3.2/bits/stl_threads.h: In instantiation of `__gthread_mutex_t std::_Swap_lock_struct<0>::_S_swap_lock': /usr/local/gcc-3.2/include/c++/3.2/bits/stl_threads.h:122: instantiated from here /usr/local/gcc-3.2/include/c++/3.2/bits/stl_threads.h:115: warning: missing initializer for member `_pthread_mutex::<anonymous struct>::__pthread_mutex_magic' gmake[3]: *** [decoderBaseObject_impl.lo] Error 1 gmake[3]: Leaving directory `/home/drutitsky/KDE3/kdemultimedia-3.1.94/mpeglib_artsplug' gmake[2]: *** [all] Error 2 gmake[2]: Leaving directory `/home/drutitsky/KDE3/kdemultimedia-3.1.94/mpeglib_artsplug' gmake[1]: *** [all-recursive] Error 1 gmake[1]: Leaving directory `/home/drutitsky/KDE3/kdemultimedia-3.1.94' gmake: *** [all] Error 2 Somehow queue was not fond despite of the line "using namespace std;" I was able overcome the problem by implicite use of std::queue thow i do not understend why it works, or how it should be. Here my fix: --- mpeglib_artsplug/decoderBaseObject_impl.h~ 2004-01-11 13:09:07.170010000 +0200 +++ mpeglib_artsplug/decoderBaseObject_impl.h 2004-01-11 13:13:35.790006000 +0200 @@ -64,7 +64,7 @@ bool m_streaming; - queue<DataPacket<mcopbyte>*> *m_packetQueue; + std::queue<DataPacket<mcopbyte>*> *m_packetQueue; public:
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
Aye. *** This bug has been marked as a duplicate of 70269 ***