Version: (using KDE KDE 3.1.94) Installed from: Compiled From Sources Compiler: gcc 3.3.2 Sparc Solaris 2.8 OS: Solaris make[1]: Entering directory `/var/tmp/kde/archive/3.2beta/kdemultimedia-3.1.94/mpeglib_artsplug' if /bin/bash ../libtool --silent --mode=compile --tag=CXX g++ -DHAVE_CONFIG_H -I. -I. -I.. -I../mpeglib/lib -I/opt/kde3/3.2beta/include/artsc -D_REENTRANT -I/opt/kdeshared/include/glib-2.0 -I/opt/kdeshared/lib/glib-2.0/include -I/opt/kde3/3.2beta/include/arts -I/opt/kde3/3.2beta/include -I/opt/qt/qt-3.2.2/include -I/opt/kdeshared/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 -O2 -fno-exceptions -ftemplate-depth-99 -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 `test -f 'libarts_mpeglib_la.all_cpp.cpp' || echo './'`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: syntax error 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.) In file included from libarts_mpeglib_la.all_cpp.cpp:9: nullPlayObject_impl.cpp: In member function `virtual bool NULLPlayObject_impl::loadMedia(const std::string&)': nullPlayObject_impl.cpp:26: warning: unused parameter `const std::string&filename' make[1]: *** [libarts_mpeglib_la.all_cpp.lo] Error 1 make[1]: Leaving directory `/var/tmp/kde/archive/3.2beta/kdemultimedia-3.1.94/mpeglib_artsplug' make: *** [all] Error 2 For some reason, GCC doesn't like the line queue<DataPacket<mcopbyte>*> *m_packetQueue; in decoderBaseObject_impl.cpp line 67. I'm not a C++ expert so I don't know what's wrong with this.
If you add a space before the second >, does it work? Does it work if you compile without --enable-final?
Adding the space did not help. Neither did compiling without --enable-final. if /bin/bash ../libtool --silent --mode=compile --tag=CXX g++ -DHAVE_CONFIG_H -I. -I. -I.. -I../mpeglib/lib -I/opt/kde3/3.2beta/include/artsc -D_REENTRANT -I/opt/kdeshared/include/glib-2.0 -I/opt/kdeshared/lib/glib-2.0/include -I/opt/kde3/3.2beta/include/arts -I/opt/kde3/3.2beta/include -I/opt/qt/qt-3.2.2/include -I/opt/kdeshared/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 -O2 -fno-exceptions -ftemplate-depth-99 -fno-check-new -fno-common -DQT_CLEAN_NAMESPACE -DQT_NO_ASCII_CAST -DQT_NO_STL -DQT_NO_COMPAT -DQT_NO_TRANSLATION -MT decoderBaseObject_impl.lo -MD -MP -MF ".deps/decoderBaseObject_impl.Tpo" \ -c -o decoderBaseObject_impl.lo `test -f 'decoderBaseObject_impl.cpp' || echo './'`decoderBaseObject_impl.cpp; \ then mv -f ".deps/decoderBaseObject_impl.Tpo" ".deps/decoderBaseObject_impl.Plo"; \ else rm -f ".deps/decoderBaseObject_impl.Tpo"; exit 1; \ fi In file included from decoderBaseObject_impl.cpp:19: decoderBaseObject_impl.h:67: error: syntax error before `*' token 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.) make[1]: *** [decoderBaseObject_impl.lo] Error 1 make[1]: Leaving directory `/var/tmp/kde/archive/3.2beta/kdemultimedia-3.1.94/mpeglib_artsplug' make: *** [all] Error 2 Note that I am compiling this with gcc 3.3.2.
I was able to get this to compile by changing the order of include files in decoderBaseObject_impl.cpp. By moving decoderBaseObject_impl.h before ../mpeglib/lib/decoder/decoderPlugin.h fixes the problem. The new include lines look like the following: #include <connect.h> #include <connect.h> #include "decoderBaseObject_impl.h" #include "../mpeglib/lib/decoder/decoderPlugin.h" Basically this is just reverting a change made between 1.25 and 1.27.
I can verify both the problem and the solution.
This is STILL broken in 3.2.2. The fix also works with GCC 3.3.3 and 3.4.
This is STILL broken in 3.2.3. Please patch this!
Still broken in KDE-3.3.1
An alternative fix is to add std:: before the queue, so the line looks like: std::queue<DataPacket<mcopbyte>*> *m_packetQueue; This suggests that something is messing up the using namespace std; that occurs earlier in the header file.
Still broken in KDE-3.3.2. This should be easy to fix... why can't someone just check in the fix?
nobody cares about mpeglib, it should be removed. use aKode.
Is there really nobody with CVS access who can just swap these two lines? Should be easy to achieve.
CVS commit by wheeler: Fix compile on Solaris. BUG:70269 M +1 -1 decoderBaseObject_impl.cpp 1.28 --- kdemultimedia/mpeglib_artsplug/decoderBaseObject_impl.cpp #1.27:1.28 @@ -16,6 +16,6 @@ #include <connect.h> -#include "../mpeglib/lib/decoder/decoderPlugin.h" #include "decoderBaseObject_impl.h" +#include "../mpeglib/lib/decoder/decoderPlugin.h" #include "debug.h"
Big thanks to you, Scott!
*** Bug 72385 has been marked as a duplicate of this bug. ***