First of all, thanks to Nicolas and Cyrille for pmpd and msd- very useful and great fun to play with!
I've successfully compiled msd on OS X, but I have a linux box running fedora core 4 (which has gcc 4.0.2 installed) and I'm having trouble getting msd to compile. I'm using a freshly compiled flext from CVS and the latest version of msd updated from CVS today.
In the archives I notice that Thomas Grill has made some modifications to flext to enable gcc 4 support, but I'm still getting this error. I'm no C++ guru so maybe there is a simple solution?? Any help appreciated.
$ bash ../../grill/flext/build.sh pd gcc
make -f ../../grill/flext/buildsys/gnumake-sub.mak PLATFORM=lnx RTSYS=pd
COMPILER=gcc BUILDPATH=../../grill/flext/buildsys/ PKGINFO=package.txt
BUILDCLASS=ext TARGETMODE=release TARGETTYPE=single _build_
make[1]: Entering directory /opt/pd-0.39-2/extra/externals/nusmuk/msd' g++ -c -msse -mfpmath=sse -ffast-math -DNDEBUG -O3 -march=pentium4 -pthread -fPIC -DFLEXT_SYS=2 -I/opt/pd-0.39-2/src -I/usr/local/include/flext main.cpp -o pd-linux/release-single/main.opp main.cpp:3: error: explicit specialization of ‘flext_obj* msdN<1>::__init__(int, t_atom*)’ must be introduced by ‘template <>’ main.cpp:3: error: template-id ‘__init__<>’ for ‘flext_obj* msdN<1>::__init__(int, t_atom*)’ does not match any template declaration main.cpp:3: error: invalid function declaration make[1]: *** [pd-linux/release-single/main.opp] Error 1 make[1]: Leaving directory
/opt/pd-0.39-2/extra/externals/nusmuk/msd'
make: *** [build-release-single] Error 2
thanks, Andrew
Hi Andrew, your errors are surprising since i tried compilation and it worked ok. What are the last lines in your msd.h? greetings, Thomas
Am 13.05.2006 um 04:02 schrieb Andrew Johnston:
First of all, thanks to Nicolas and Cyrille for pmpd and msd- very useful and great fun to play with!
I've successfully compiled msd on OS X, but I have a linux box running fedora core 4 (which has gcc 4.0.2 installed) and I'm having trouble getting msd to compile. I'm using a freshly compiled flext from CVS and the latest version of msd updated from CVS today.
In the archives I notice that Thomas Grill has made some modifications to flext to enable gcc 4 support, but I'm still getting this error.
I'm no C++ guru so maybe there is a simple solution?? Any help appreciated.$ bash ../../grill/flext/build.sh pd gcc make -f ../../grill/flext/buildsys/gnumake-sub.mak PLATFORM=lnx RTSYS=pd COMPILER=gcc BUILDPATH=../../grill/flext/buildsys/ PKGINFO=package.txt BUILDCLASS=ext TARGETMODE=release TARGETTYPE=single _build_ make[1]: Entering directory
/opt/pd-0.39-2/extra/externals/nusmuk/msd' g++ -c -msse -mfpmath=sse -ffast-math -DNDEBUG -O3 -march=pentium4 -pthread -fPIC -DFLEXT_SYS=2 -I/opt/pd-0.39-2/src -I/usr/local/include/flext main.cpp -o pd-linux/release-single/main.opp main.cpp:3: error: explicit specialization of ‘flext_obj* msdN<1>::__init__(int, t_atom*)’ must be introduced by ‘template <>’ main.cpp:3: error: template-id ‘__init__<>’ for ‘flext_obj* msdN<1>::__init__(int, t_atom*)’ does not match any template declaration main.cpp:3: error: invalid function declaration make[1]: *** [pd-linux/release-single/main.opp] Error 1 make[1]: Leaving directory
/opt/pd-0.39-2/extra/externals/nusmuk/msd' make: *** [build-release-single] Error 2thanks, Andrew -- Andrew Johnston http://andrewjohnston.net/
PD-list@iem.at mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list
Thomas,
What are the last lines in your msd.h?
They are:
#define MSD(NAME,CLASS,N)
typedef msdN<N> CLASS;
FLEXT_NEW_V(NAME,CLASS)
thanks again, Andrew
What are the last lines in your msd.h?
oops- and probably you are interested in the lines before those also. The last 9 lines:
template<int N> const t_symbol *msdN<N>::S_massesPosYL; template<int N> const t_symbol *msdN<N>::S_massesPosZL; template<int N> const t_symbol *msdN<N>::S_massesPosStd; template<int N> const t_symbol *msdN<N>::S_massesPosMean; template<int N> const t_symbol *msdN<N>::S_massesForcesL;
#define MSD(NAME,CLASS,N)
typedef msdN<N> CLASS;
FLEXT_NEW_V(NAME,CLASS)
Andrew Johnston http://andrewjohnston.net/
Hi Andrew, obviously your cvs checkout is not up to date:
The last lines should be
#define MSD(NAME,CLASS,N)
typedef msdN<N> CLASS;
template<> FLEXT_NEW_V(NAME,CLASS)
which fixes the compilation problem.
greetings, Thomas
Am 15.05.2006 um 02:29 schrieb Andrew Johnston:
What are the last lines in your msd.h?
oops- and probably you are interested in the lines before those also. The last 9 lines:
template<int N> const t_symbol *msdN<N>::S_massesPosYL; template<int N> const t_symbol *msdN<N>::S_massesPosZL; template<int N> const t_symbol *msdN<N>::S_massesPosStd; template<int N> const t_symbol *msdN<N>::S_massesPosMean; template<int N> const t_symbol *msdN<N>::S_massesForcesL;
#define MSD(NAME,CLASS,N)
typedef msdN<N> CLASS;
FLEXT_NEW_V(NAME,CLASS)Andrew
Andrew Johnston http://andrewjohnston.net/
hi Thomas, You are completely correct. I can't explain why, but when I ran a 'cvs update' on my checked-out copy of msd it appeared to work as usual but did not actually update. A completely fresh checkout had the updated msd.h as you describe which is compiling just fine. I suspect this may have something to do with Sourceforge moving the CVS repository to pure-data.cvs.sourceforge.net (instead of cvs.sourceforge.net)??
Anyway, thanks again and sorry it was such a mundane matter!
Andrew
Thomas Grill wrote:
Hi Andrew, obviously your cvs checkout is not up to date:
The last lines should be #define MSD(NAME,CLASS,N)
typedef msdN<N> CLASS;
template<> FLEXT_NEW_V(NAME,CLASS)which fixes the compilation problem.
greetings, Thomas
Could you post your binaries somewhere, like puredata.org?
.hc
On Sat, 13 May 2006, Andrew Johnston wrote:
First of all, thanks to Nicolas and Cyrille for pmpd and msd- very useful and great fun to play with!
I've successfully compiled msd on OS X, but I have a linux box running fedora core 4 (which has gcc 4.0.2 installed) and I'm having trouble getting msd to compile. I'm using a freshly compiled flext from CVS and the latest version of msd updated from CVS today.
In the archives I notice that Thomas Grill has made some modifications to flext to enable gcc 4 support, but I'm still getting this error. I'm no C++ guru so maybe there is a simple solution?? Any help appreciated.
$ bash ../../grill/flext/build.sh pd gcc make -f ../../grill/flext/buildsys/gnumake-sub.mak PLATFORM=lnx RTSYS=pd COMPILER=gcc BUILDPATH=../../grill/flext/buildsys/ PKGINFO=package.txt BUILDCLASS=ext TARGETMODE=release TARGETTYPE=single _build_ make[1]: Entering directory
/opt/pd-0.39-2/extra/externals/nusmuk/msd' g++ -c -msse -mfpmath=sse -ffast-math -DNDEBUG -O3 -march=pentium4 -pthread -fPIC -DFLEXT_SYS=2 -I/opt/pd-0.39-2/src -I/usr/local/include/flext main.cpp -o pd-linux/release-single/main.opp main.cpp:3: error: explicit specialization of ?flext_obj* msdN<1>::__init__(int, t_atom*)? must be introduced by ?template <>? main.cpp:3: error: template-id ?__init__<>? for ?flext_obj* msdN<1>::__init__(int, t_atom*)? does not match any template declaration main.cpp:3: error: invalid function declaration make[1]: *** [pd-linux/release-single/main.opp] Error 1 make[1]: Leaving directory
/opt/pd-0.39-2/extra/externals/nusmuk/msd' make: *** [build-release-single] Error 2thanks, Andrew -- Andrew Johnston http://andrewjohnston.net/
PD-list@iem.at mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list
zen
\
\
\[D[D[D[D