[CLAM] Building and installing a processing object with Sconstruct and several shared objects

Mikael Andreen mikael at leiflandia.se
Tue May 12 13:21:42 PDT 2009


Hello!

I found it easy to get started with CLAM using the examples on the
web. I have used the following Sconstruct file to build and install my
processings for use with the Network Editor:
http://clam-project.org/wiki/Building_a_processing_library. I however
have a problem when I construct more complex signal processing
programs. The problems occur when my processing class has members of
classes that I have written myself. When I use the Sconstruct file in
the link above to build my library, the Network editor crashes as soon
as I try to load my plugin (although my classes stand alone are
debugged and working) . I know very little about dynamic linking and
SConstruct so I would be glad if someone helped me out on how to write
a Sconstruct file that makes the linking right (if the SCons file is
the problem). I have three different classes: a class called intDec is
the processing object, poly_FIR_dec is a class used by the processing
object and likewise the class poly_FIR_interp. What happens when these
objects are shared? Can it be name-conflicts that make the processing
crash? Some features are similiar and named the same in poly_FIR_dec
and poly_FIR_interp for instance, is this a problem when the objects
are shared? Any thoughts on how to solve this problem and the correct
c++ programming practises surrounding it are welcome This is the
output from my compile process:

scons: Reading SConscript files ...
scons: done reading SConscript files.
scons: Building targets ...
g++ -o poly_FIR_interp.os -c -g -O3 -Wall -fPIC -DCLAM_FLOAT
-DUSE_PTHREADS=1 -DUSE_XERCES=1 -DCLAM_USE_XML -DUSE_LADSPA=1
-DUSE_SNDFILE=1 -DUSE_OGGVORBIS=1 -DWITH_VORBIS=1 -DUSE_MAD=1
-DWITH_MAD=1 -DUSE_ID3=1 -DUSE_ALSA=1 -DUSE_JACK=1 -DUSE_PORTAUDIO=1
-DUSE_FFTW3=1 -I/usr/local/include -I/usr/include/alsa
poly_FIR_interp.cxx
g++ -o intDec.os -c -g -O3 -Wall -fPIC -DCLAM_FLOAT -DUSE_PTHREADS=1
-DUSE_XERCES=1 -DCLAM_USE_XML -DUSE_LADSPA=1 -DUSE_SNDFILE=1
-DUSE_OGGVORBIS=1 -DWITH_VORBIS=1 -DUSE_MAD=1 -DWITH_MAD=1 -DUSE_ID3=1
-DUSE_ALSA=1 -DUSE_JACK=1 -DUSE_PORTAUDIO=1 -DUSE_FFTW3=1
-I/usr/local/include -I/usr/include/alsa intDec.cxx
g++ -o poly_FIR_dec.os -c -g -O3 -Wall -fPIC -DCLAM_FLOAT
-DUSE_PTHREADS=1 -DUSE_XERCES=1 -DCLAM_USE_XML -DUSE_LADSPA=1
-DUSE_SNDFILE=1 -DUSE_OGGVORBIS=1 -DWITH_VORBIS=1 -DUSE_MAD=1
-DWITH_MAD=1 -DUSE_ID3=1 -DUSE_ALSA=1 -DUSE_JACK=1 -DUSE_PORTAUDIO=1
-DUSE_FFTW3=1 -I/usr/local/include -I/usr/include/alsa
poly_FIR_dec.cxx
g++ -o libintDec.so -shared poly_FIR_interp.os intDec.os
poly_FIR_dec.os -lclam_core -lclam_audioio -lclam_processing
scons: `install' is up to date.
scons: done building targets.


Best Regards, Mikael




More information about the clam-users mailing list