Patrick Pogscheba | 10 Dec 2008 16:14
Picon
Picon

ALSA, AudioIn & dropouts

Hello,

I'm a new user of the clam-framework and i have a question about audio capturing. I've created an
AudioIn-Object with the proper settings. For testing purposes i've written the audio from this to an
audio file and encoutered many dropouts, especially when i'm moving the mouse. In other applications i
don't get this behaviour from my audioinput. Each time a dropout occurs, there will be a "." in my terminal
window. Do you guys have an idea why i get this behaviour ??

The Code:

        int _sampleRate = 8000;
        int _bufferSize = 256;

        AudioManager audioManager(_sampleRate,_bufferSize);

        AudioIOConfig cfgInLeft;
        cfgInLeft.SetDevice("default:default");
        cfgInLeft.SetChannelID(0);
        cfgInLeft.SetFrameSize(_bufferSize);
        cfgInLeft.SetSampleRate(_sampleRate);

        AudioIn inLeft(cfgInLeft);

        audioManager.Start();

        inLeft.Start();

        do
        {

(Continue reading)

Stephane THOMAS | 10 Dec 2008 17:53
Favicon

Need help

Hello,

I try to modify the example program
http://iua-share.upf.edu/wikis/clam/index.php/Constructing_and_playing_a_simple_network

I want to use a MultiChannelAudioFileReader instead of the mono one, and use JACKNetworkPlayer instead of
the PortAudio player.

Changing :
        network.SetPlayer(new CLAM::PANetworkPlayer);

with :
        CLAM::JACKNetworkPlayer player;
        network.SetPlayer (&player);

works fine with the MonoAudioFileReader.

But I want to use a multi-channel reader (to play a stereo file) so my code becomes :

-----main.cpp----------
#include <CLAM/Network.hxx>
#include <CLAM/PANetworkPlayer.hxx>
#include <CLAM/JACKNetworkPlayer.hxx>
#include <CLAM/MultiChannelAudioFileReader.hxx>
int error(const std::string & msg)
{
	std::cerr << msg << std::endl;
	return -1;
}
int main(int argc, char ** argv)
(Continue reading)

Stephane THOMAS | 10 Dec 2008 18:54
Favicon

What's wrong with my code

Hi,

Here is another program I wrote from scratch (the goal is to get a command line program which plays a stereo
file through JACK)

It produces sound, but once again, I have a repeated error message and the sound is awful :

Warning: 2 sinks were not fed, so could not send audio to the callback.

The program is called cjap (for CLAM JACK Audio Player), here is the code :

-----------cjap.h--------------
#include <QObject>
#include "CLAM/Network.hxx"
#include "CLAM/AudioSink.hxx"
#include "CLAM/MultiChannelAudioFileReader.hxx"
#include "CLAM/JACKNetworkPlayer.hxx"

using namespace std;
using namespace CLAM;

class JackAudioFilePlayer : QObject
{
Q_OBJECT
 Network network;
 AudioSink sinkL;
 AudioSink sinkR;
 MultiChannelAudioFileReader reader;
 MultiChannelAudioFileReaderConfig config;
 JACKNetworkPlayer player;
(Continue reading)

David García Garzón | 12 Dec 2008 02:33
X-Face
Favicon

Re: ALSA, AudioIn & dropouts

The dot indicates an xrun. AudioManager and AudioOut, are obsolete, and we are 
not testing them at all, it is possible that we might introduce some 
regression. You should use instead an AudioSource inside a network with a 
PANetworkPlayer. Take a look to this example:

http://iua-
share.upf.edu/wikis/clam/index.php/Constructing_and_playing_a_simple_network

I don't know for sure whether this will solve the xrun problem but it could. 
Anyway it is the way to go. Tell us whether the network approach works, 
please.

David.

El Wednesday 10 December 2008 16:14:03 Patrick Pogscheba va escriure:
> Hello,
>
> I'm a new user of the clam-framework and i have a question about audio
> capturing. I've created an AudioIn-Object with the proper settings. For
> testing purposes i've written the audio from this to an audio file and
> encoutered many dropouts, especially when i'm moving the mouse. In other
> applications i don't get this behaviour from my audioinput. Each time a
> dropout occurs, there will be a "." in my terminal window. Do you guys have
> an idea why i get this behaviour ??
>
> The Code:
>
>         int _sampleRate = 8000;
>         int _bufferSize = 256;
>
(Continue reading)

David García Garzón | 14 Dec 2008 19:04
X-Face
Favicon

Re: What's wrong with my code

I am sorry, the jack setup in my box is not working at all and i am not able 
to test your program. By reading it, it seems correct (besides a memory 
management issue i explain bellow)

> Warning: 2 sinks were not fed, so could not send audio to the callback.

This messages is also painless provided that it is only shown a couple of 
times. Normally it means that you have to execute the network a couple of 
times to produce the first output. But if the message displays all the time, 
then it could be a problem of unfeeded input which seems not likely.

Notice that the connection will fail silently when the file is mono. Check 
CanConnectPorts before actually connecting them or use CLAM::ConnectPorts 
instead of CLAM::Network::ConnectPorts so you can get a nice exception. Also 
the configuration might fail. Whatever the case, the Network has several 
methods to do the diagnose when it can be played or not.

If the network is sounding but badly, then please, check whether other jack 
applications work and if they do, check whether provided CLAM examples work 
with jack (NetworkEditor and the like).

Sorry for not being that helpful.

The memory management issue: notice that the network takes ownership of the 
added processings so you cannot make the processings automatic members of your 
objects. Anyway that should not cause the problem you were reporting.

On Dimecres 10 Desembre 2008 18:54:07 Stephane THOMAS wrote:
> Hi,
>
(Continue reading)

Vincent SHAO | 15 Dec 2008 12:13
Picon

lose in errors

Hi, everyone
I just downloaded the Clam library, followed all the instructions to install it into my Ubuntu 8.04.


When I pasted the code on the web http://www.clam.iua.upf.edu/wikis/clam/index.php/Constructing_and_playing_a_simple_network, to make sure that everything set.
#include <CLAM/Network.hxx>
#include <CLAM/PANetworkPlayer.hxx>
#include <CLAM/MonoAudioFileReader.hxx>

int error(const std::string & msg)
{
std::cerr << msg << std::endl;
return -1;
}

int main(int argc, char ** argv)
{
if (argc!=2) return error ("needs a filename.");

CLAM::Network network;

std::string reader = network.AddProcessing("MonoAudioFileReader");
// Configure the reader
CLAM::MonoAudioFileReaderConfig cfg;
cfg.SetSourceFile(argv[1]);
if (!network.ConfigureProcessing(reader, cfg))
return error("Could not open the file");
int length = ((CLAM::MonoAudioFileReader &) network.GetProcessing(reader)).GetHeader().GetLength()/1000;

// Add an audio sink and connect its input to the reader's output
std::string sink = network.AddProcessing("AudioSink");
network.ConnectPorts(reader+".Samples Read", sink+".AudioIn");

// Set the audio backend to PortAudio
network.SetPlayer(new CLAM::PANetworkPlayer);
network.Start();
sleep(length);
network.Stop();
}

but it gave me a error like below, when i compiled it.
/usr/local/include/CLAM/AudioFileFormats.hxx:26:2: error: #error
USE_SNDFILE was not set to 1 in your settings.cfg file, but you are
including files that require this. Please fix your settings.cfg

then I modified the audiofileformats.hxx , comment the those lines.

then I compiled myfirstclam.cpp again, it return those errors below:

/tmp/cc0JIYqu.o: In function `main':
first_clam.cpp:(.text+0x2be): undefined reference to `CLAM::FlattenedNetwork::AddProcessing(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
first_clam.cpp:(.text+0x3a1): undefined reference to `CLAM::FlattenedNetwork::ConfigureProcessing(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, CLAM::ProcessingConfig const&)'
first_clam.cpp:(.text+0x45f): undefined reference to `CLAM::FlattenedNetwork::GetProcessing(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const'
first_clam.cpp:(.text+0x4df): undefined reference to `CLAM::FlattenedNetwork::AddProcessing(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
first_clam.cpp:(.text+0x593): undefined reference to `CLAM::FlattenedNetwork::ConnectPorts(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
first_clam.cpp:(.text+0x60e): undefined reference to `CLAM::PANetworkPlayer::PANetworkPlayer()'
first_clam.cpp:(.text+0x626): undefined reference to `CLAM::FlattenedNetwork::SetPlayer(CLAM::NetworkPlayer*)'
first_clam.cpp:(.text+0x658): undefined reference to `CLAM::FlattenedNetwork::Start()'
first_clam.cpp:(.text+0x671): undefined reference to `CLAM::FlattenedNetwork::Stop()'
/tmp/cc0JIYqu.o: In function `CLAM::Network::Network()':
first_clam.cpp:(.text._ZN4CLAM7NetworkC1Ev[CLAM::Network::Network()]+0xd): undefined reference to `CLAM::FlattenedNetwork::FlattenedNetwork()'
/tmp/cc0JIYqu.o: In function `CLAM::Network::~Network()':
first_clam.cpp:(.text._ZN4CLAM7NetworkD0Ev[CLAM::Network::~Network()]+0x17): undefined reference to `CLAM::FlattenedNetwork::~FlattenedNetwork()'
/tmp/cc0JIYqu.o: In function `CLAM::Network::~Network()':
first_clam.cpp:(.text._ZN4CLAM7NetworkD1Ev[CLAM::Network::~Network()]+0x17): undefined reference to `CLAM::FlattenedNetwork::~FlattenedNetwork()'
/tmp/cc0JIYqu.o: In function `CLAM::MonoAudioFileReaderConfig::AddSourceFile()':
first_clam.cpp:(.text._ZN4CLAM25MonoAudioFileReaderConfig13AddSourceFileEv[CLAM::MonoAudioFileReaderConfig::AddSourceFile()]+0x1d): undefined reference to `CLAM::DynamicType::AddAttr_(unsigned int, unsigned int)'
/tmp/cc0JIYqu.o: In function `CLAM::MonoAudioFileReaderConfig::AddSelectedChannel()':
first_clam.cpp:(.text._ZN4CLAM25MonoAudioFileReaderConfig18AddSelectedChannelEv[CLAM::MonoAudioFileReaderConfig::AddSelectedChannel()]+0x1d): undefined reference to `CLAM::DynamicType::AddAttr_(unsigned int, unsigned int)'
/tmp/cc0JIYqu.o: In function `CLAM::MonoAudioFileReaderConfig::AddLoop()':
first_clam.cpp:(.text._ZN4CLAM25MonoAudioFileReaderConfig7AddLoopEv[CLAM::MonoAudioFileReaderConfig::AddLoop()]+0x1d): undefined reference to `CLAM::DynamicType::AddAttr_(unsigned int, unsigned int)'
/tmp/cc0JIYqu.o: In function `CLAM::XMLAdapter<CLAM::AudioInFilename>::XMLAdapter(CLAM::AudioInFilename&, char const*, bool)':
first_clam.cpp:(.text._ZN4CLAM10XMLAdapterINS_15AudioInFilenameEEC1ERS1_PKcb[CLAM::XMLAdapter<CLAM::AudioInFilename>::XMLAdapter(CLAM::AudioInFilename&, char const*, bool)]+0x22): undefined reference to `CLAM::BasicXMLable::BasicXMLable(char const*, bool)'
/tmp/cc0JIYqu.o: In function `CLAM::XMLAdapter<int>::XMLAdapter(int&, char const*, bool)':
first_clam.cpp:(.text._ZN4CLAM10XMLAdapterIiEC1ERiPKcb[CLAM::XMLAdapter<int>::XMLAdapter(int&, char const*, bool)]+0x22): undefined reference to `CLAM::BasicXMLable::BasicXMLable(char const*, bool)'
/tmp/cc0JIYqu.o: In function `CLAM::XMLAdapter<bool>::XMLAdapter(bool&, char const*, bool)':
first_clam.cpp:(.text._ZN4CLAM10XMLAdapterIbEC1ERbPKcb[CLAM::XMLAdapter<bool>::XMLAdapter(bool&, char const*, bool)]+0x22): undefined reference to `CLAM::BasicXMLable::BasicXMLable(char const*, bool)'
/tmp/cc0JIYqu.o: In function `CLAM::XMLAdapter<CLAM::AudioInFilename>::XMLContent(std::basic_istream<char, std::char_traits<char> >&)':
first_clam.cpp:(.text._ZN4CLAM10XMLAdapterINS_15AudioInFilenameEE10XMLContentERSi[CLAM::XMLAdapter<CLAM::AudioInFilename>::XMLContent(std::basic_istream<char, std::char_traits<char> >&)]+0x1a): undefined reference to `CLAM::operator>>(std::basic_istream<char, std::char_traits<char> >&, CLAM::Text&)'
/tmp/cc0JIYqu.o: In function `CLAM::MonoAudioFileReaderConfig::RemoveSourceFile()':
first_clam.cpp:(.text._ZN4CLAM25MonoAudioFileReaderConfig16RemoveSourceFileEv[CLAM::MonoAudioFileReaderConfig::RemoveSourceFile()]+0x15): undefined reference to `CLAM::DynamicType::RemoveAttr_(unsigned int)'
/tmp/cc0JIYqu.o: In function `CLAM::MonoAudioFileReaderConfig::RemoveSelectedChannel()':
first_clam.cpp:(.text._ZN4CLAM25MonoAudioFileReaderConfig21RemoveSelectedChannelEv[CLAM::MonoAudioFileReaderConfig::RemoveSelectedChannel()]+0x15): undefined reference to `CLAM::DynamicType::RemoveAttr_(unsigned int)'
/tmp/cc0JIYqu.o: In function `CLAM::MonoAudioFileReaderConfig::RemoveLoop()':
first_clam.cpp:(.text._ZN4CLAM25MonoAudioFileReaderConfig10RemoveLoopEv[CLAM::MonoAudioFileReaderConfig::RemoveLoop()]+0x15): undefined reference to `CLAM::DynamicType::RemoveAttr_(unsigned int)'
/tmp/cc0JIYqu.o: In function `CLAM::MonoAudioFileReaderConfig::SetSelectedChannel(int const&)':
first_clam.cpp:(.text._ZN4CLAM25MonoAudioFileReaderConfig18SetSelectedChannelERKi[CLAM::MonoAudioFileReaderConfig::SetSelectedChannel(int const&)]+0x4f): undefined reference to `CLAM::ErrAssertionFailed::ErrAssertionFailed(char const*, char const*, int)'
/tmp/cc0JIYqu.o: In function `CLAM::MonoAudioFileReaderConfig::SetLoop(bool const&)':
first_clam.cpp:(.text._ZN4CLAM25MonoAudioFileReaderConfig7SetLoopERKb[CLAM::MonoAudioFileReaderConfig::SetLoop(bool const&)]+0x4f): undefined reference to `CLAM::ErrAssertionFailed::ErrAssertionFailed(char const*, char const*, int)'
/tmp/cc0JIYqu.o: In function `CLAM::MonoAudioFileReaderConfig::GetSourceFile() const':
first_clam.cpp:(.text._ZNK4CLAM25MonoAudioFileReaderConfig13GetSourceFileEv[CLAM::MonoAudioFileReaderConfig::GetSourceFile() const]+0x4f): undefined reference to `CLAM::ErrAssertionFailed::ErrAssertionFailed(char const*, char const*, int)'
/tmp/cc0JIYqu.o: In function `CLAM::MonoAudioFileReaderConfig::GetSelectedChannel() const':
first_clam.cpp:(.text._ZNK4CLAM25MonoAudioFileReaderConfig18GetSelectedChannelEv[CLAM::MonoAudioFileReaderConfig::GetSelectedChannel() const]+0x4f): undefined reference to `CLAM::ErrAssertionFailed::ErrAssertionFailed(char const*, char const*, int)'
/tmp/cc0JIYqu.o: In function `CLAM::MonoAudioFileReaderConfig::GetLoop() const':
first_clam.cpp:(.text._ZNK4CLAM25MonoAudioFileReaderConfig7GetLoopEv[CLAM::MonoAudioFileReaderConfig::GetLoop() const]+0x4f): undefined reference to `CLAM::ErrAssertionFailed::ErrAssertionFailed(char const*, char const*, int)'
/tmp/cc0JIYqu.o:first_clam.cpp:(.text._ZN4CLAM25MonoAudioFileReaderConfig13SetSourceFileERKNS_15AudioInFilenameE[CLAM::MonoAudioFileReaderConfig::SetSourceFile(CLAM::AudioInFilename const&)]+0x4f): more undefined references to `CLAM::ErrAssertionFailed::ErrAssertionFailed(char const*, char const*, int)' follow
/tmp/cc0JIYqu.o: In function `CLAM::MonoAudioFileReaderConfig::LoadDynAttributes(CLAM::Storage&)':
first_clam.cpp:(.text._ZN4CLAM25MonoAudioFileReaderConfig17LoadDynAttributesERNS_7StorageE[CLAM::MonoAudioFileReaderConfig::LoadDynAttributes(CLAM::Storage&)]+0x18): undefined reference to `CLAM::DynamicType::UpdateData()'
first_clam.cpp:(.text._ZN4CLAM25MonoAudioFileReaderConfig17LoadDynAttributesERNS_7StorageE[CLAM::MonoAudioFileReaderConfig::LoadDynAttributes(CLAM::Storage&)]+0x3d): undefined reference to `CLAM::DynamicType::UpdateData()'
/tmp/cc0JIYqu.o: In function `CLAM::AudioFileHeader::GetLength() const':
first_clam.cpp:(.text._ZNK4CLAM15AudioFileHeader9GetLengthEv[CLAM::AudioFileHeader::GetLength() const]+0x4f): undefined reference to `CLAM::ErrAssertionFailed::ErrAssertionFailed(char const*, char const*, int)'
/tmp/cc0JIYqu.o: In function `CLAM::ErrAssertionFailed::~ErrAssertionFailed()':
first_clam.cpp:(.text._ZN4CLAM18ErrAssertionFailedD1Ev[CLAM::ErrAssertionFailed::~ErrAssertionFailed()]+0x17): undefined reference to `CLAM::Err::~Err()'
/tmp/cc0JIYqu.o: In function `CLAM::ErrAssertionFailed::~ErrAssertionFailed()':
first_clam.cpp:(.text._ZN4CLAM18ErrAssertionFailedD0Ev[CLAM::ErrAssertionFailed::~ErrAssertionFailed()]+0x17): undefined reference to `CLAM::Err::~Err()'
/tmp/cc0JIYqu.o: In function `CLAM::ProcessingConfig::ProcessingConfig(CLAM::ProcessingConfig const&, bool, bool)':
first_clam.cpp:(.text._ZN4CLAM16ProcessingConfigC2ERKS0_bb[CLAM::ProcessingConfig::ProcessingConfig(CLAM::ProcessingConfig const&, bool, bool)]+0x31): undefined reference to `CLAM::DynamicType::DynamicType(CLAM::DynamicType const&, bool, bool)'
/tmp/cc0JIYqu.o: In function `CLAM::ProcessingConfig::~ProcessingConfig()':
first_clam.cpp:(.text._ZN4CLAM16ProcessingConfigD0Ev[CLAM::ProcessingConfig::~ProcessingConfig()]+0x17): undefined reference to `CLAM::DynamicType::~DynamicType()'
/tmp/cc0JIYqu.o: In function `CLAM::ProcessingConfig::~ProcessingConfig()':
first_clam.cpp:(.text._ZN4CLAM16ProcessingConfigD1Ev[CLAM::ProcessingConfig::~ProcessingConfig()]+0x17): undefined reference to `CLAM::DynamicType::~DynamicType()'
/tmp/cc0JIYqu.o: In function `CLAM::ProcessingConfig::~ProcessingConfig()':
first_clam.cpp:(.text._ZN4CLAM16ProcessingConfigD2Ev[CLAM::ProcessingConfig::~ProcessingConfig()]+0x17): undefined reference to `CLAM::DynamicType::~DynamicType()'
/tmp/cc0JIYqu.o: In function `CLAM::ProcessingConfig::ProcessingConfig(int)':
first_clam.cpp:(.text._ZN4CLAM16ProcessingConfigC2Ei[CLAM::ProcessingConfig::ProcessingConfig(int)]+0x14): undefined reference to `CLAM::DynamicType::DynamicType(int)'
/tmp/cc0JIYqu.o: In function `CLAM::MonoAudioFileReaderConfig::MonoAudioFileReaderConfig()':
first_clam.cpp:(.text._ZN4CLAM25MonoAudioFileReaderConfigC1Ev[CLAM::MonoAudioFileReaderConfig::MonoAudioFileReaderConfig()]+0x36): undefined reference to `CLAM::MonoAudioFileReaderConfig::DefaultInit()'
/tmp/cc0JIYqu.o:(.rodata._ZTVN4CLAM7NetworkE[vtable for CLAM::Network]+0x10): undefined reference to `CLAM::FlattenedNetwork::StoreOn(CLAM::Storage&) const'
/tmp/cc0JIYqu.o:(.rodata._ZTVN4CLAM7NetworkE[vtable for CLAM::Network]+0x14): undefined reference to `CLAM::FlattenedNetwork::LoadFrom(CLAM::Storage&)'
/tmp/cc0JIYqu.o:(.rodata._ZTVN4CLAM7NetworkE[vtable for CLAM::Network]+0x24): undefined reference to `CLAM::FlattenedNetwork::Clear()'
/tmp/cc0JIYqu.o:(.rodata._ZTVN4CLAM7NetworkE[vtable for CLAM::Network]+0x30): undefined reference to `CLAM::FlattenedNetwork::GetNetworkId(CLAM::Processing const*) const'
/tmp/cc0JIYqu.o:(.rodata._ZTVN4CLAM7NetworkE[vtable for CLAM::Network]+0x34): undefined reference to `CLAM::FlattenedNetwork::BeginProcessings()'
/tmp/cc0JIYqu.o:(.rodata._ZTVN4CLAM7NetworkE[vtable for CLAM::Network]+0x38): undefined reference to `CLAM::FlattenedNetwork::EndProcessings()'
/tmp/cc0JIYqu.o:(.rodata._ZTVN4CLAM7NetworkE[vtable for CLAM::Network]+0x3c): undefined reference to `CLAM::FlattenedNetwork::BeginProcessings() const'
/tmp/cc0JIYqu.o:(.rodata._ZTVN4CLAM7NetworkE[vtable for CLAM::Network]+0x40): undefined reference to `CLAM::FlattenedNetwork::EndProcessings() const'
/tmp/cc0JIYqu.o:(.rodata._ZTVN4CLAM7NetworkE[vtable for CLAM::Network]+0x44): undefined reference to `CLAM::FlattenedNetwork::GetInPortsConnectedTo(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const'
/tmp/cc0JIYqu.o:(.rodata._ZTVN4CLAM7NetworkE[vtable for CLAM::Network]+0x48): undefined reference to `CLAM::FlattenedNetwork::GetInControlsConnectedTo(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const'
/tmp/cc0JIYqu.o:(.rodata._ZTVN4CLAM7NetworkE[vtable for CLAM::Network]+0x4c): undefined reference to `CLAM::FlattenedNetwork::GetInPortsConnectedTo(CLAM::OutPortBase&) const'
/tmp/cc0JIYqu.o:(.rodata._ZTVN4CLAM7NetworkE[vtable for CLAM::Network]+0x50): undefined reference to `CLAM::FlattenedNetwork::GetConnectorIdentifier(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const'
/tmp/cc0JIYqu.o:(.rodata._ZTVN4CLAM7NetworkE[vtable for CLAM::Network]+0x54): undefined reference to `CLAM::FlattenedNetwork::GetProcessingIdentifier(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const'
/tmp/cc0JIYqu.o:(.rodata._ZTVN4CLAM7NetworkE[vtable for CLAM::Network]+0x58): undefined reference to `CLAM::FlattenedNetwork::GetInPortByCompleteName(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const'
/tmp/cc0JIYqu.o:(.rodata._ZTVN4CLAM7NetworkE[vtable for CLAM::Network]+0x5c): undefined reference to `CLAM::FlattenedNetwork::GetOutPortByCompleteName(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const'
/tmp/cc0JIYqu.o:(.rodata._ZTVN4CLAM7NetworkE[vtable for CLAM::Network]+0x60): undefined reference to `CLAM::FlattenedNetwork::GetInControlByCompleteName(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const'
/tmp/cc0JIYqu.o:(.rodata._ZTVN4CLAM7NetworkE[vtable for CLAM::Network]+0x64): undefined reference to `CLAM::FlattenedNetwork::GetOutControlByCompleteName(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const'
/tmp/cc0JIYqu.o:(.rodata._ZTVN4CLAM7NetworkE[vtable for CLAM::Network]+0x68): undefined reference to `CLAM::FlattenedNetwork::ConnectPorts(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
/tmp/cc0JIYqu.o:(.rodata._ZTVN4CLAM7NetworkE[vtable for CLAM::Network]+0x6c): undefined reference to `CLAM::FlattenedNetwork::ConnectControls(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
/tmp/cc0JIYqu.o:(.rodata._ZTVN4CLAM7NetworkE[vtable for CLAM::Network]+0x70): undefined reference to `CLAM::FlattenedNetwork::DisconnectPorts(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
/tmp/cc0JIYqu.o:(.rodata._ZTVN4CLAM7NetworkE[vtable for CLAM::Network]+0x74): undefined reference to `CLAM::FlattenedNetwork::DisconnectControls(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
/tmp/cc0JIYqu.o:(.rodata._ZTVN4CLAM7NetworkE[vtable for CLAM::Network]+0x78): undefined reference to `CLAM::FlattenedNetwork::GetUnconnectedInPorts() const'
/tmp/cc0JIYqu.o:(.rodata._ZTVN4CLAM7NetworkE[vtable for CLAM::Network]+0x7c): undefined reference to `CLAM::FlattenedNetwork::HasProcessing(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const'
/tmp/cc0JIYqu.o:(.rodata._ZTVN4CLAM7NetworkE[vtable for CLAM::Network]+0x80): undefined reference to `CLAM::FlattenedNetwork::GetProcessing(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const'
/tmp/cc0JIYqu.o:(.rodata._ZTVN4CLAM7NetworkE[vtable for CLAM::Network]+0x84): undefined reference to `CLAM::FlattenedNetwork::AddProcessing(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, CLAM::Processing*)'
/tmp/cc0JIYqu.o:(.rodata._ZTVN4CLAM7NetworkE[vtable for CLAM::Network]+0x88): undefined reference to `CLAM::FlattenedNetwork::AddProcessing(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
/tmp/cc0JIYqu.o:(.rodata._ZTVN4CLAM7NetworkE[vtable for CLAM::Network]+0x8c): undefined reference to `CLAM::FlattenedNetwork::AddProcessing(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
/tmp/cc0JIYqu.o:(.rodata._ZTVN4CLAM7NetworkE[vtable for CLAM::Network]+0x90): undefined reference to `CLAM::FlattenedNetwork::GetUnusedName(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const'
/tmp/cc0JIYqu.o:(.rodata._ZTVN4CLAM7NetworkE[vtable for CLAM::Network]+0x94): undefined reference to `CLAM::FlattenedNetwork::RenameProcessing(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
/tmp/cc0JIYqu.o:(.rodata._ZTVN4CLAM7NetworkE[vtable for CLAM::Network]+0x98): undefined reference to `CLAM::FlattenedNetwork::RemoveProcessing(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
/tmp/cc0JIYqu.o:(.rodata._ZTVN4CLAM7NetworkE[vtable for CLAM::Network]+0x9c): undefined reference to `CLAM::FlattenedNetwork::IsReady() const'
/tmp/cc0JIYqu.o:(.rodata._ZTVN4CLAM7NetworkE[vtable for CLAM::Network]+0xa0): undefined reference to `CLAM::FlattenedNetwork::IsEmpty() const'
/tmp/cc0JIYqu.o:(.rodata._ZTVN4CLAM7NetworkE[vtable for CLAM::Network]+0xa4): undefined reference to `CLAM::FlattenedNetwork::HasMisconfiguredProcessings() const'
/tmp/cc0JIYqu.o:(.rodata._ZTVN4CLAM7NetworkE[vtable for CLAM::Network]+0xa8): undefined reference to `CLAM::FlattenedNetwork::HasUnconnectedInPorts() const'
/tmp/cc0JIYqu.o:(.rodata._ZTVN4CLAM7NetworkE[vtable for CLAM::Network]+0xac): undefined reference to `CLAM::FlattenedNetwork::HasSyncSource() const'
/tmp/cc0JIYqu.o:(.rodata._ZTVN4CLAM7NetworkE[vtable for CLAM::Network]+0xb0): undefined reference to `CLAM::FlattenedNetwork::ConfigureProcessing(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, CLAM::ProcessingConfig const&)'
/tmp/cc0JIYqu.o:(.rodata._ZTVN4CLAM7NetworkE[vtable for CLAM::Network]+0xb4): undefined reference to `CLAM::FlattenedNetwork::ReconfigureAllProcessings()'
/tmp/cc0JIYqu.o:(.rodata._ZTVN4CLAM7NetworkE[vtable for CLAM::Network]+0xb8): undefined reference to `CLAM::FlattenedNetwork::GetConfigurationErrors() const'
/tmp/cc0JIYqu.o:(.rodata._ZTVN4CLAM7NetworkE[vtable for CLAM::Network]+0xbc): undefined reference to `CLAM::FlattenedNetwork::UpdateSelections(std::list<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&)'
/tmp/cc0JIYqu.o:(.rodata._ZTVN4CLAM7NetworkE[vtable for CLAM::Network]+0xc4): undefined reference to `CLAM::FlattenedNetwork::SetProcessingsGeometries(std::map<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, CLAM::BaseNetwork::Geometry, std::less<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> > const, CLAM::BaseNetwork::Geometry> > > const&)'
/tmp/cc0JIYqu.o:(.rodata._ZTVN4CLAM7NetworkE[vtable for CLAM::Network]+0xc8): undefined reference to `CLAM::FlattenedNetwork::GetAndClearGeometries()'
/tmp/cc0JIYqu.o:(.rodata._ZTVN4CLAM7NetworkE[vtable for CLAM::Network]+0xcc): undefined reference to `CLAM::FlattenedNetwork::BackendBufferSize()'
/tmp/cc0JIYqu.o:(.rodata._ZTVN4CLAM7NetworkE[vtable for CLAM::Network]+0xd0): undefined reference to `CLAM::FlattenedNetwork::BackendSampleRate()'
/tmp/cc0JIYqu.o:(.rodata._ZTVN4CLAM7NetworkE[vtable for CLAM::Network]+0xd4): undefined reference to `CLAM::FlattenedNetwork::HasSelectionAndContains(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const'
/tmp/cc0JIYqu.o:(.rodata._ZTIN4CLAM7NetworkE[typeinfo for CLAM::Network]+0x8): undefined reference to `typeinfo for CLAM::FlattenedNetwork'
/tmp/cc0JIYqu.o:(.rodata._ZTVN4CLAM25MonoAudioFileReaderConfigE[vtable for CLAM::MonoAudioFileReaderConfig]+0x18): undefined reference to `CLAM::DynamicType::ShallowCopy() const'
/tmp/cc0JIYqu.o:(.rodata._ZTVN4CLAM25MonoAudioFileReaderConfigE[vtable for CLAM::MonoAudioFileReaderConfig]+0x1c): undefined reference to `CLAM::DynamicType::DeepCopy() const'
/tmp/cc0JIYqu.o:(.rodata._ZTVN4CLAM25MonoAudioFileReaderConfigE[vtable for CLAM::MonoAudioFileReaderConfig]+0x28): undefined reference to `CLAM::DynamicType::InformAttr_(unsigned int, char const*, unsigned int, char const*, bool, void* (*)(void*), void* (*)(void*, void*), void (*)(void*))'
/tmp/cc0JIYqu.o:(.rodata._ZTIN4CLAM16ProcessingConfigE[typeinfo for CLAM::ProcessingConfig]+0x8): undefined reference to `typeinfo for CLAM::DynamicType'
/tmp/cc0JIYqu.o:(.rodata._ZTIN4CLAM18ErrAssertionFailedE[typeinfo for CLAM::ErrAssertionFailed]+0x8): undefined reference to `typeinfo for CLAM::Err'
/tmp/cc0JIYqu.o:(.rodata._ZTVN4CLAM16ProcessingConfigE[vtable for CLAM::ProcessingConfig]+0x18): undefined reference to `CLAM::DynamicType::ShallowCopy() const'
/tmp/cc0JIYqu.o:(.rodata._ZTVN4CLAM16ProcessingConfigE[vtable for CLAM::ProcessingConfig]+0x1c): undefined reference to `CLAM::DynamicType::DeepCopy() const'
/tmp/cc0JIYqu.o:(.rodata._ZTVN4CLAM16ProcessingConfigE[vtable for CLAM::ProcessingConfig]+0x28): undefined reference to `CLAM::DynamicType::InformAttr_(unsigned int, char const*, unsigned int, char const*, bool, void* (*)(void*), void* (*)(void*, void*), void (*)(void*))'
collect2: ld returned 1 exit status

What should i do this time. I am totally lost.

Can you kindly lend me a hand?

Great Thanks!

Best wishes!
--
Vincent SHAO
Beihang Univ.(aka. Beijing Univ. of Aeronautics and Astronautics)
_______________________________________________
CLAM mailing list
CLAM@...
http://clam.iua.upf.edu
David García Garzón | 15 Dec 2008 15:46
Favicon

Re: lose in errors

It looks like there is a lot of clam needed compilation options missing in 
there. Are you using the provided SCons file in the wiki?

http://iua-share.upf.edu/wikis/clam/index.php/Minimal_SConstruct_to_build_with_CLAM_and_Qt4

If you prefer not to use scons, you should at least use pkg-config to get 
those compiler options. Anyway SCons path is strongly recommended.

http://iua-share.upf.edu/wikis/clam/index.php/Compiling_with_CLAM_without_SCons

On Monday 15 December 2008 12:13:33 Vincent SHAO wrote:
> *Hi, everyone
> I just downloaded the Clam library, followed all the instructions to
> install it into my Ubuntu 8.04.
>
> When I pasted the code on the web
> http://www.clam.iua.upf.edu/wikis/clam/index.php/Constructing_and_playing_a
>_simple_network, to make sure that everything set. *
>
> #include <CLAM/Network.hxx>
> #include <CLAM/PANetworkPlayer.hxx>
> #include <CLAM/MonoAudioFileReader.hxx>
>
> int error(const std::string & msg)
> {
> 	std::cerr << msg << std::endl;
> 	return -1;
> }
>
> int main(int argc, char ** argv)
> {
> 	if (argc!=2) return error ("needs a filename.");
>
> 	CLAM::Network network;
>
> 	std::string reader = network.AddProcessing("MonoAudioFileReader");
> 	// Configure the reader
> 	CLAM::MonoAudioFileReaderConfig cfg;
> 	cfg.SetSourceFile(argv[1]);
> 	if (!network.ConfigureProcessing(reader, cfg))
> 		 return error("Could not open the file");
> 	int length = ((CLAM::MonoAudioFileReader &)
> network.GetProcessing(reader)).GetHeader().GetLength()/1000;
>
>  	// Add an audio sink and connect its input to the reader's output
> 	std::string sink = network.AddProcessing("AudioSink");
> 	network.ConnectPorts(reader+".Samples Read", sink+".AudioIn");
>
> 	// Set the audio backend to PortAudio
> 	network.SetPlayer(new CLAM::PANetworkPlayer);
> 	network.Start();
> 	sleep(length);
> 	network.Stop();
> }
>
>
> *but it gave me a error like below, when i compiled it.*
>
> /usr/local/include/CLAM/AudioFileFormats.hxx:26:2: error: #error
> USE_SNDFILE was not set to 1 in your settings.cfg file, but you are
> including files that require this. Please fix your settings.cfg
> *
> then I modified the audiofileformats.hxx , comment the those lines.
>
> then I compiled myfirstclam.cpp again, it return those errors below:
> *
> /tmp/cc0JIYqu.o: In function `main':
> first_clam.cpp:(.text+0x2be): undefined reference to
> `CLAM::FlattenedNetwork::AddProcessing(std::basic_string<char,
> std::char_traits<char>, std::allocator<char> > const&)'
> first_clam.cpp:(.text+0x3a1): undefined reference to
> `CLAM::FlattenedNetwork::ConfigureProcessing(std::basic_string<char,
> std::char_traits<char>, std::allocator<char> > const&,
> CLAM::ProcessingConfig const&)'
> first_clam.cpp:(.text+0x45f): undefined reference to
> `CLAM::FlattenedNetwork::GetProcessing(std::basic_string<char,
> std::char_traits<char>, std::allocator<char> > const&) const'
> first_clam.cpp:(.text+0x4df): undefined reference to
> `CLAM::FlattenedNetwork::AddProcessing(std::basic_string<char,
> std::char_traits<char>, std::allocator<char> > const&)'
> first_clam.cpp:(.text+0x593): undefined reference to
> `CLAM::FlattenedNetwork::ConnectPorts(std::basic_string<char,
> std::char_traits<char>, std::allocator<char> > const&,
> std::basic_string<char, std::char_traits<char>, std::allocator<char> >
> const&)'
> first_clam.cpp:(.text+0x60e): undefined reference to
> `CLAM::PANetworkPlayer::PANetworkPlayer()'
> first_clam.cpp:(.text+0x626): undefined reference to
> `CLAM::FlattenedNetwork::SetPlayer(CLAM::NetworkPlayer*)'
> first_clam.cpp:(.text+0x658): undefined reference to
> `CLAM::FlattenedNetwork::Start()'
> first_clam.cpp:(.text+0x671): undefined reference to
> `CLAM::FlattenedNetwork::Stop()'
> /tmp/cc0JIYqu.o: In function `CLAM::Network::Network()':
> first_clam.cpp:(.text._ZN4CLAM7NetworkC1Ev[CLAM::Network::Network()]+0xd):
> undefined reference to `CLAM::FlattenedNetwork::FlattenedNetwork()'
> /tmp/cc0JIYqu.o: In function `CLAM::Network::~Network()':
> first_clam.cpp:(.text._ZN4CLAM7NetworkD0Ev[CLAM::Network::~Network()]+0x17)
>: undefined reference to `CLAM::FlattenedNetwork::~FlattenedNetwork()'
> /tmp/cc0JIYqu.o: In function `CLAM::Network::~Network()':
> first_clam.cpp:(.text._ZN4CLAM7NetworkD1Ev[CLAM::Network::~Network()]+0x17)
>: undefined reference to `CLAM::FlattenedNetwork::~FlattenedNetwork()'
> /tmp/cc0JIYqu.o: In function
> `CLAM::MonoAudioFileReaderConfig::AddSourceFile()':
> first_clam.cpp:(.text._ZN4CLAM25MonoAudioFileReaderConfig13AddSourceFileEv[
>CLAM::MonoAudioFileReaderConfig::AddSourceFile()]+0x1d): undefined reference
> to `CLAM::DynamicType::AddAttr_(unsigned int,
> unsigned int)'
> /tmp/cc0JIYqu.o: In function
> `CLAM::MonoAudioFileReaderConfig::AddSelectedChannel()':
> first_clam.cpp:(.text._ZN4CLAM25MonoAudioFileReaderConfig18AddSelectedChann
>elEv[CLAM::MonoAudioFileReaderConfig::AddSelectedChannel()]+0x1d): undefined
> reference to `CLAM::DynamicType::AddAttr_(unsigned int,
> unsigned int)'
> /tmp/cc0JIYqu.o: In function `CLAM::MonoAudioFileReaderConfig::AddLoop()':
> first_clam.cpp:(.text._ZN4CLAM25MonoAudioFileReaderConfig7AddLoopEv[CLAM::M
>onoAudioFileReaderConfig::AddLoop()]+0x1d): undefined reference to
> `CLAM::DynamicType::AddAttr_(unsigned int,
> unsigned int)'
> /tmp/cc0JIYqu.o: In function
> `CLAM::XMLAdapter<CLAM::AudioInFilename>::XMLAdapter(CLAM::AudioInFilename&
>, char const*, bool)':
> first_clam.cpp:(.text._ZN4CLAM10XMLAdapterINS_15AudioInFilenameEEC1ERS1_PKc
>b[CLAM::XMLAdapter<CLAM::AudioInFilename>::XMLAdapter(CLAM::AudioInFilename&
>, char const*, bool)]+0x22): undefined reference to
> `CLAM::BasicXMLable::BasicXMLable(char const*, bool)'
> /tmp/cc0JIYqu.o: In function `CLAM::XMLAdapter<int>::XMLAdapter(int&,
> char const*, bool)':
> first_clam.cpp:(.text._ZN4CLAM10XMLAdapterIiEC1ERiPKcb[CLAM::XMLAdapter<int
>>::XMLAdapter(int&, char const*, bool)]+0x22): undefined reference to
> `CLAM::BasicXMLable::BasicXMLable(char const*, bool)'
> /tmp/cc0JIYqu.o: In function
> `CLAM::XMLAdapter<bool>::XMLAdapter(bool&, char const*, bool)':
> first_clam.cpp:(.text._ZN4CLAM10XMLAdapterIbEC1ERbPKcb[CLAM::XMLAdapter<boo
>l>::XMLAdapter(bool&, char const*, bool)]+0x22): undefined reference to
> `CLAM::BasicXMLable::BasicXMLable(char const*, bool)'
> /tmp/cc0JIYqu.o: In function
> `CLAM::XMLAdapter<CLAM::AudioInFilename>::XMLContent(std::basic_istream<cha
>r, std::char_traits<char> >&)':
> first_clam.cpp:(.text._ZN4CLAM10XMLAdapterINS_15AudioInFilenameEE10XMLConte
>ntERSi[CLAM::XMLAdapter<CLAM::AudioInFilename>::XMLContent(std::basic_istrea
>m<char, std::char_traits<char> >&)]+0x1a): undefined reference to
> `CLAM::operator>>(std::basic_istream<char, std::char_traits<char> >&,
> CLAM::Text&)'
> /tmp/cc0JIYqu.o: In function
> `CLAM::MonoAudioFileReaderConfig::RemoveSourceFile()':
> first_clam.cpp:(.text._ZN4CLAM25MonoAudioFileReaderConfig16RemoveSourceFile
>Ev[CLAM::MonoAudioFileReaderConfig::RemoveSourceFile()]+0x15): undefined
> reference to `CLAM::DynamicType::RemoveAttr_(unsigned int)'
> /tmp/cc0JIYqu.o: In function
> `CLAM::MonoAudioFileReaderConfig::RemoveSelectedChannel()':
> first_clam.cpp:(.text._ZN4CLAM25MonoAudioFileReaderConfig21RemoveSelectedCh
>annelEv[CLAM::MonoAudioFileReaderConfig::RemoveSelectedChannel()]+0x15):
> undefined reference to `CLAM::DynamicType::RemoveAttr_(unsigned int)'
> /tmp/cc0JIYqu.o: In function
> `CLAM::MonoAudioFileReaderConfig::RemoveLoop()':
> first_clam.cpp:(.text._ZN4CLAM25MonoAudioFileReaderConfig10RemoveLoopEv[CLA
>M::MonoAudioFileReaderConfig::RemoveLoop()]+0x15): undefined reference to
> `CLAM::DynamicType::RemoveAttr_(unsigned int)' /tmp/cc0JIYqu.o: In function
> `CLAM::MonoAudioFileReaderConfig::SetSelectedChannel(int const&)':
> first_clam.cpp:(.text._ZN4CLAM25MonoAudioFileReaderConfig18SetSelectedChann
>elERKi[CLAM::MonoAudioFileReaderConfig::SetSelectedChannel(int
> const&)]+0x4f): undefined reference to
> `CLAM::ErrAssertionFailed::ErrAssertionFailed(char const*, char
> const*, int)'
> /tmp/cc0JIYqu.o: In function
> `CLAM::MonoAudioFileReaderConfig::SetLoop(bool const&)':
> first_clam.cpp:(.text._ZN4CLAM25MonoAudioFileReaderConfig7SetLoopERKb[CLAM:
>:MonoAudioFileReaderConfig::SetLoop(bool const&)]+0x4f): undefined reference
> to
> `CLAM::ErrAssertionFailed::ErrAssertionFailed(char const*, char
> const*, int)'
> /tmp/cc0JIYqu.o: In function
> `CLAM::MonoAudioFileReaderConfig::GetSourceFile() const':
> first_clam.cpp:(.text._ZNK4CLAM25MonoAudioFileReaderConfig13GetSourceFileEv
>[CLAM::MonoAudioFileReaderConfig::GetSourceFile() const]+0x4f): undefined
> reference to
> `CLAM::ErrAssertionFailed::ErrAssertionFailed(char const*, char
> const*, int)'
> /tmp/cc0JIYqu.o: In function
> `CLAM::MonoAudioFileReaderConfig::GetSelectedChannel() const':
> first_clam.cpp:(.text._ZNK4CLAM25MonoAudioFileReaderConfig18GetSelectedChan
>nelEv[CLAM::MonoAudioFileReaderConfig::GetSelectedChannel() const]+0x4f):
> undefined reference to
> `CLAM::ErrAssertionFailed::ErrAssertionFailed(char const*, char
> const*, int)'
> /tmp/cc0JIYqu.o: In function `CLAM::MonoAudioFileReaderConfig::GetLoop()
> const':
> first_clam.cpp:(.text._ZNK4CLAM25MonoAudioFileReaderConfig7GetLoopEv[CLAM::
>MonoAudioFileReaderConfig::GetLoop() const]+0x4f): undefined reference to
> `CLAM::ErrAssertionFailed::ErrAssertionFailed(char const*, char
> const*, int)'
> /tmp/cc0JIYqu.o:first_clam.cpp:(.text._ZN4CLAM25MonoAudioFileReaderConfig13
>SetSourceFileERKNS_15AudioInFilenameE[CLAM::MonoAudioFileReaderConfig::SetSo
>urceFile(CLAM::AudioInFilename const&)]+0x4f): more undefined references to
> `CLAM::ErrAssertionFailed::ErrAssertionFailed(char const*, char
> const*, int)' follow
> /tmp/cc0JIYqu.o: In function
> `CLAM::MonoAudioFileReaderConfig::LoadDynAttributes(CLAM::Storage&)':
> first_clam.cpp:(.text._ZN4CLAM25MonoAudioFileReaderConfig17LoadDynAttribute
>sERNS_7StorageE[CLAM::MonoAudioFileReaderConfig::LoadDynAttributes(CLAM::Sto
>rage&)]+0x18): undefined reference to `CLAM::DynamicType::UpdateData()'
> first_clam.cpp:(.text._ZN4CLAM25MonoAudioFileReaderConfig17LoadDynAttribute
>sERNS_7StorageE[CLAM::MonoAudioFileReaderConfig::LoadDynAttributes(CLAM::Sto
>rage&)]+0x3d): undefined reference to `CLAM::DynamicType::UpdateData()'
> /tmp/cc0JIYqu.o: In function `CLAM::AudioFileHeader::GetLength() const':
> first_clam.cpp:(.text._ZNK4CLAM15AudioFileHeader9GetLengthEv[CLAM::AudioFil
>eHeader::GetLength() const]+0x4f): undefined reference to
> `CLAM::ErrAssertionFailed::ErrAssertionFailed(char const*, char
> const*, int)'
> /tmp/cc0JIYqu.o: In function
> `CLAM::ErrAssertionFailed::~ErrAssertionFailed()':
> first_clam.cpp:(.text._ZN4CLAM18ErrAssertionFailedD1Ev[CLAM::ErrAssertionFa
>iled::~ErrAssertionFailed()]+0x17): undefined reference to
> `CLAM::Err::~Err()'
> /tmp/cc0JIYqu.o: In function
> `CLAM::ErrAssertionFailed::~ErrAssertionFailed()':
> first_clam.cpp:(.text._ZN4CLAM18ErrAssertionFailedD0Ev[CLAM::ErrAssertionFa
>iled::~ErrAssertionFailed()]+0x17): undefined reference to
> `CLAM::Err::~Err()'
> /tmp/cc0JIYqu.o: In function
> `CLAM::ProcessingConfig::ProcessingConfig(CLAM::ProcessingConfig
> const&, bool, bool)':
> first_clam.cpp:(.text._ZN4CLAM16ProcessingConfigC2ERKS0_bb[CLAM::Processing
>Config::ProcessingConfig(CLAM::ProcessingConfig const&, bool, bool)]+0x31):
> undefined reference to
> `CLAM::DynamicType::DynamicType(CLAM::DynamicType const&, bool, bool)'
> /tmp/cc0JIYqu.o: In function `CLAM::ProcessingConfig::~ProcessingConfig()':
> first_clam.cpp:(.text._ZN4CLAM16ProcessingConfigD0Ev[CLAM::ProcessingConfig
>::~ProcessingConfig()]+0x17): undefined reference to
> `CLAM::DynamicType::~DynamicType()'
> /tmp/cc0JIYqu.o: In function `CLAM::ProcessingConfig::~ProcessingConfig()':
> first_clam.cpp:(.text._ZN4CLAM16ProcessingConfigD1Ev[CLAM::ProcessingConfig
>::~ProcessingConfig()]+0x17): undefined reference to
> `CLAM::DynamicType::~DynamicType()'
> /tmp/cc0JIYqu.o: In function `CLAM::ProcessingConfig::~ProcessingConfig()':
> first_clam.cpp:(.text._ZN4CLAM16ProcessingConfigD2Ev[CLAM::ProcessingConfig
>::~ProcessingConfig()]+0x17): undefined reference to
> `CLAM::DynamicType::~DynamicType()'
> /tmp/cc0JIYqu.o: In function
> `CLAM::ProcessingConfig::ProcessingConfig(int)':
> first_clam.cpp:(.text._ZN4CLAM16ProcessingConfigC2Ei[CLAM::ProcessingConfig
>::ProcessingConfig(int)]+0x14): undefined reference to
> `CLAM::DynamicType::DynamicType(int)'
> /tmp/cc0JIYqu.o: In function
> `CLAM::MonoAudioFileReaderConfig::MonoAudioFileReaderConfig()':
> first_clam.cpp:(.text._ZN4CLAM25MonoAudioFileReaderConfigC1Ev[CLAM::MonoAud
>ioFileReaderConfig::MonoAudioFileReaderConfig()]+0x36): undefined reference
> to
> `CLAM::MonoAudioFileReaderConfig::DefaultInit()'
> /tmp/cc0JIYqu.o:(.rodata._ZTVN4CLAM7NetworkE[vtable for
> CLAM::Network]+0x10): undefined reference to
> `CLAM::FlattenedNetwork::StoreOn(CLAM::Storage&) const'
> /tmp/cc0JIYqu.o:(.rodata._ZTVN4CLAM7NetworkE[vtable for
> CLAM::Network]+0x14): undefined reference to
> `CLAM::FlattenedNetwork::LoadFrom(CLAM::Storage&)'
> /tmp/cc0JIYqu.o:(.rodata._ZTVN4CLAM7NetworkE[vtable for
> CLAM::Network]+0x24): undefined reference to
> `CLAM::FlattenedNetwork::Clear()'
> /tmp/cc0JIYqu.o:(.rodata._ZTVN4CLAM7NetworkE[vtable for
> CLAM::Network]+0x30): undefined reference to
> `CLAM::FlattenedNetwork::GetNetworkId(CLAM::Processing const*) const'
> /tmp/cc0JIYqu.o:(.rodata._ZTVN4CLAM7NetworkE[vtable for
> CLAM::Network]+0x34): undefined reference to
> `CLAM::FlattenedNetwork::BeginProcessings()'
> /tmp/cc0JIYqu.o:(.rodata._ZTVN4CLAM7NetworkE[vtable for
> CLAM::Network]+0x38): undefined reference to
> `CLAM::FlattenedNetwork::EndProcessings()'
> /tmp/cc0JIYqu.o:(.rodata._ZTVN4CLAM7NetworkE[vtable for
> CLAM::Network]+0x3c): undefined reference to
> `CLAM::FlattenedNetwork::BeginProcessings() const'
> /tmp/cc0JIYqu.o:(.rodata._ZTVN4CLAM7NetworkE[vtable for
> CLAM::Network]+0x40): undefined reference to
> `CLAM::FlattenedNetwork::EndProcessings() const'
> /tmp/cc0JIYqu.o:(.rodata._ZTVN4CLAM7NetworkE[vtable for
> CLAM::Network]+0x44): undefined reference to
> `CLAM::FlattenedNetwork::GetInPortsConnectedTo(std::basic_string<char,
> std::char_traits<char>, std::allocator<char> > const&) const'
> /tmp/cc0JIYqu.o:(.rodata._ZTVN4CLAM7NetworkE[vtable for
> CLAM::Network]+0x48): undefined reference to
> `CLAM::FlattenedNetwork::GetInControlsConnectedTo(std::basic_string<char,
> std::char_traits<char>, std::allocator<char> > const&) const'
> /tmp/cc0JIYqu.o:(.rodata._ZTVN4CLAM7NetworkE[vtable for
> CLAM::Network]+0x4c): undefined reference to
> `CLAM::FlattenedNetwork::GetInPortsConnectedTo(CLAM::OutPortBase&)
> const'
> /tmp/cc0JIYqu.o:(.rodata._ZTVN4CLAM7NetworkE[vtable for
> CLAM::Network]+0x50): undefined reference to
> `CLAM::FlattenedNetwork::GetConnectorIdentifier(std::basic_string<char,
> std::char_traits<char>, std::allocator<char> > const&) const'
> /tmp/cc0JIYqu.o:(.rodata._ZTVN4CLAM7NetworkE[vtable for
> CLAM::Network]+0x54): undefined reference to
> `CLAM::FlattenedNetwork::GetProcessingIdentifier(std::basic_string<char,
> std::char_traits<char>, std::allocator<char> > const&) const'
> /tmp/cc0JIYqu.o:(.rodata._ZTVN4CLAM7NetworkE[vtable for
> CLAM::Network]+0x58): undefined reference to
> `CLAM::FlattenedNetwork::GetInPortByCompleteName(std::basic_string<char,
> std::char_traits<char>, std::allocator<char> > const&) const'
> /tmp/cc0JIYqu.o:(.rodata._ZTVN4CLAM7NetworkE[vtable for
> CLAM::Network]+0x5c): undefined reference to
> `CLAM::FlattenedNetwork::GetOutPortByCompleteName(std::basic_string<char,
> std::char_traits<char>, std::allocator<char> > const&) const'
> /tmp/cc0JIYqu.o:(.rodata._ZTVN4CLAM7NetworkE[vtable for
> CLAM::Network]+0x60): undefined reference to
> `CLAM::FlattenedNetwork::GetInControlByCompleteName(std::basic_string<char,
> std::char_traits<char>, std::allocator<char> > const&) const'
> /tmp/cc0JIYqu.o:(.rodata._ZTVN4CLAM7NetworkE[vtable for
> CLAM::Network]+0x64): undefined reference to
> `CLAM::FlattenedNetwork::GetOutControlByCompleteName(std::basic_string<char
>, std::char_traits<char>, std::allocator<char> > const&) const'
> /tmp/cc0JIYqu.o:(.rodata._ZTVN4CLAM7NetworkE[vtable for
> CLAM::Network]+0x68): undefined reference to
> `CLAM::FlattenedNetwork::ConnectPorts(std::basic_string<char,
> std::char_traits<char>, std::allocator<char> > const&,
> std::basic_string<char, std::char_traits<char>, std::allocator<char> >
> const&)'
> /tmp/cc0JIYqu.o:(.rodata._ZTVN4CLAM7NetworkE[vtable for
> CLAM::Network]+0x6c): undefined reference to
> `CLAM::FlattenedNetwork::ConnectControls(std::basic_string<char,
> std::char_traits<char>, std::allocator<char> > const&,
> std::basic_string<char, std::char_traits<char>, std::allocator<char> >
> const&)'
> /tmp/cc0JIYqu.o:(.rodata._ZTVN4CLAM7NetworkE[vtable for
> CLAM::Network]+0x70): undefined reference to
> `CLAM::FlattenedNetwork::DisconnectPorts(std::basic_string<char,
> std::char_traits<char>, std::allocator<char> > const&,
> std::basic_string<char, std::char_traits<char>, std::allocator<char> >
> const&)'
> /tmp/cc0JIYqu.o:(.rodata._ZTVN4CLAM7NetworkE[vtable for
> CLAM::Network]+0x74): undefined reference to
> `CLAM::FlattenedNetwork::DisconnectControls(std::basic_string<char,
> std::char_traits<char>, std::allocator<char> > const&,
> std::basic_string<char, std::char_traits<char>, std::allocator<char> >
> const&)'
> /tmp/cc0JIYqu.o:(.rodata._ZTVN4CLAM7NetworkE[vtable for
> CLAM::Network]+0x78): undefined reference to
> `CLAM::FlattenedNetwork::GetUnconnectedInPorts() const'
> /tmp/cc0JIYqu.o:(.rodata._ZTVN4CLAM7NetworkE[vtable for
> CLAM::Network]+0x7c): undefined reference to
> `CLAM::FlattenedNetwork::HasProcessing(std::basic_string<char,
> std::char_traits<char>, std::allocator<char> > const&) const'
> /tmp/cc0JIYqu.o:(.rodata._ZTVN4CLAM7NetworkE[vtable for
> CLAM::Network]+0x80): undefined reference to
> `CLAM::FlattenedNetwork::GetProcessing(std::basic_string<char,
> std::char_traits<char>, std::allocator<char> > const&) const'
> /tmp/cc0JIYqu.o:(.rodata._ZTVN4CLAM7NetworkE[vtable for
> CLAM::Network]+0x84): undefined reference to
> `CLAM::FlattenedNetwork::AddProcessing(std::basic_string<char,
> std::char_traits<char>, std::allocator<char> > const&,
> CLAM::Processing*)'
> /tmp/cc0JIYqu.o:(.rodata._ZTVN4CLAM7NetworkE[vtable for
> CLAM::Network]+0x88): undefined reference to
> `CLAM::FlattenedNetwork::AddProcessing(std::basic_string<char,
> std::char_traits<char>, std::allocator<char> > const&,
> std::basic_string<char, std::char_traits<char>, std::allocator<char> >
> const&)'
> /tmp/cc0JIYqu.o:(.rodata._ZTVN4CLAM7NetworkE[vtable for
> CLAM::Network]+0x8c): undefined reference to
> `CLAM::FlattenedNetwork::AddProcessing(std::basic_string<char,
> std::char_traits<char>, std::allocator<char> > const&)'
> /tmp/cc0JIYqu.o:(.rodata._ZTVN4CLAM7NetworkE[vtable for
> CLAM::Network]+0x90): undefined reference to
> `CLAM::FlattenedNetwork::GetUnusedName(std::basic_string<char,
> std::char_traits<char>, std::allocator<char> > const&) const'
> /tmp/cc0JIYqu.o:(.rodata._ZTVN4CLAM7NetworkE[vtable for
> CLAM::Network]+0x94): undefined reference to
> `CLAM::FlattenedNetwork::RenameProcessing(std::basic_string<char,
> std::char_traits<char>, std::allocator<char> > const&,
> std::basic_string<char, std::char_traits<char>, std::allocator<char> >
> const&)'
> /tmp/cc0JIYqu.o:(.rodata._ZTVN4CLAM7NetworkE[vtable for
> CLAM::Network]+0x98): undefined reference to
> `CLAM::FlattenedNetwork::RemoveProcessing(std::basic_string<char,
> std::char_traits<char>, std::allocator<char> > const&)'
> /tmp/cc0JIYqu.o:(.rodata._ZTVN4CLAM7NetworkE[vtable for
> CLAM::Network]+0x9c): undefined reference to
> `CLAM::FlattenedNetwork::IsReady() const'
> /tmp/cc0JIYqu.o:(.rodata._ZTVN4CLAM7NetworkE[vtable for
> CLAM::Network]+0xa0): undefined reference to
> `CLAM::FlattenedNetwork::IsEmpty() const'
> /tmp/cc0JIYqu.o:(.rodata._ZTVN4CLAM7NetworkE[vtable for
> CLAM::Network]+0xa4): undefined reference to
> `CLAM::FlattenedNetwork::HasMisconfiguredProcessings() const'
> /tmp/cc0JIYqu.o:(.rodata._ZTVN4CLAM7NetworkE[vtable for
> CLAM::Network]+0xa8): undefined reference to
> `CLAM::FlattenedNetwork::HasUnconnectedInPorts() const'
> /tmp/cc0JIYqu.o:(.rodata._ZTVN4CLAM7NetworkE[vtable for
> CLAM::Network]+0xac): undefined reference to
> `CLAM::FlattenedNetwork::HasSyncSource() const'
> /tmp/cc0JIYqu.o:(.rodata._ZTVN4CLAM7NetworkE[vtable for
> CLAM::Network]+0xb0): undefined reference to
> `CLAM::FlattenedNetwork::ConfigureProcessing(std::basic_string<char,
> std::char_traits<char>, std::allocator<char> > const&,
> CLAM::ProcessingConfig const&)'
> /tmp/cc0JIYqu.o:(.rodata._ZTVN4CLAM7NetworkE[vtable for
> CLAM::Network]+0xb4): undefined reference to
> `CLAM::FlattenedNetwork::ReconfigureAllProcessings()'
> /tmp/cc0JIYqu.o:(.rodata._ZTVN4CLAM7NetworkE[vtable for
> CLAM::Network]+0xb8): undefined reference to
> `CLAM::FlattenedNetwork::GetConfigurationErrors() const'
> /tmp/cc0JIYqu.o:(.rodata._ZTVN4CLAM7NetworkE[vtable for
> CLAM::Network]+0xbc): undefined reference to
> `CLAM::FlattenedNetwork::UpdateSelections(std::list<std::basic_string<char,
> std::char_traits<char>, std::allocator<char> >,
> std::allocator<std::basic_string<char, std::char_traits<char>,
> std::allocator<char> > > > const&)'
> /tmp/cc0JIYqu.o:(.rodata._ZTVN4CLAM7NetworkE[vtable for
> CLAM::Network]+0xc4): undefined reference to
> `CLAM::FlattenedNetwork::SetProcessingsGeometries(std::map<std::basic_strin
>g<char, std::char_traits<char>, std::allocator<char> >,
> CLAM::BaseNetwork::Geometry, std::less<std::basic_string<char,
> std::char_traits<char>, std::allocator<char> > >,
> std::allocator<std::pair<std::basic_string<char,
> std::char_traits<char>, std::allocator<char> > const,
> CLAM::BaseNetwork::Geometry> > > const&)'
> /tmp/cc0JIYqu.o:(.rodata._ZTVN4CLAM7NetworkE[vtable for
> CLAM::Network]+0xc8): undefined reference to
> `CLAM::FlattenedNetwork::GetAndClearGeometries()'
> /tmp/cc0JIYqu.o:(.rodata._ZTVN4CLAM7NetworkE[vtable for
> CLAM::Network]+0xcc): undefined reference to
> `CLAM::FlattenedNetwork::BackendBufferSize()'
> /tmp/cc0JIYqu.o:(.rodata._ZTVN4CLAM7NetworkE[vtable for
> CLAM::Network]+0xd0): undefined reference to
> `CLAM::FlattenedNetwork::BackendSampleRate()'
> /tmp/cc0JIYqu.o:(.rodata._ZTVN4CLAM7NetworkE[vtable for
> CLAM::Network]+0xd4): undefined reference to
> `CLAM::FlattenedNetwork::HasSelectionAndContains(std::basic_string<char,
> std::char_traits<char>, std::allocator<char> > const&) const'
> /tmp/cc0JIYqu.o:(.rodata._ZTIN4CLAM7NetworkE[typeinfo for
> CLAM::Network]+0x8): undefined reference to `typeinfo for
> CLAM::FlattenedNetwork'
> /tmp/cc0JIYqu.o:(.rodata._ZTVN4CLAM25MonoAudioFileReaderConfigE[vtable
> for CLAM::MonoAudioFileReaderConfig]+0x18): undefined reference to
> `CLAM::DynamicType::ShallowCopy() const'
> /tmp/cc0JIYqu.o:(.rodata._ZTVN4CLAM25MonoAudioFileReaderConfigE[vtable
> for CLAM::MonoAudioFileReaderConfig]+0x1c): undefined reference to
> `CLAM::DynamicType::DeepCopy() const'
> /tmp/cc0JIYqu.o:(.rodata._ZTVN4CLAM25MonoAudioFileReaderConfigE[vtable
> for CLAM::MonoAudioFileReaderConfig]+0x28): undefined reference to
> `CLAM::DynamicType::InformAttr_(unsigned int, char const*, unsigned
> int, char const*, bool, void* (*)(void*), void* (*)(void*, void*),
> void (*)(void*))'
> /tmp/cc0JIYqu.o:(.rodata._ZTIN4CLAM16ProcessingConfigE[typeinfo for
> CLAM::ProcessingConfig]+0x8): undefined reference to `typeinfo for
> CLAM::DynamicType'
> /tmp/cc0JIYqu.o:(.rodata._ZTIN4CLAM18ErrAssertionFailedE[typeinfo for
> CLAM::ErrAssertionFailed]+0x8): undefined reference to `typeinfo for
> CLAM::Err'
> /tmp/cc0JIYqu.o:(.rodata._ZTVN4CLAM16ProcessingConfigE[vtable for
> CLAM::ProcessingConfig]+0x18): undefined reference to
> `CLAM::DynamicType::ShallowCopy() const'
> /tmp/cc0JIYqu.o:(.rodata._ZTVN4CLAM16ProcessingConfigE[vtable for
> CLAM::ProcessingConfig]+0x1c): undefined reference to
> `CLAM::DynamicType::DeepCopy() const'
> /tmp/cc0JIYqu.o:(.rodata._ZTVN4CLAM16ProcessingConfigE[vtable for
> CLAM::ProcessingConfig]+0x28): undefined reference to
> `CLAM::DynamicType::InformAttr_(unsigned int, char const*, unsigned
> int, char const*, bool, void* (*)(void*), void* (*)(void*, void*),
> void (*)(void*))'
> collect2: ld returned 1 exit status
> *
> What should i do this time. I am totally lost.
>
> Can you kindly lend me a hand?
>
> Great Thanks!
>
> Best wishes!*
Vincent SHAO | 15 Dec 2008 16:30
Picon

Re: lose in errors

Thanks for your kindly answer, but, sorry,  I don't really follow. I just want to install the clam library and could be able to run some amazing demo given on the website.

I have instralled all the CLAM dependencies, including:

build-essential scons ladspa-sdk libxerces27-dev libfftw3-dev libjack-dev libmad0-dev libogg-dev libsndfile1-dev libvorbis-dev libid3-3.8.3-dev libasound2-dev portaudio19-dev

and installed the clam without any reported error:
$ scons configure
$ scons
$ sudo scons install

sorry, i still don't know the problem here.


On Mon, Dec 15, 2008 at 6:46 AM, David García Garzón <dgarcia-Rd+YOfPD5vKVc3sceRu5cw@public.gmane.org> wrote:
It looks like there is a lot of clam needed compilation options missing in
there. Are you using the provided SCons file in the wiki?

http://iua-share.upf.edu/wikis/clam/index.php/Minimal_SConstruct_to_build_with_CLAM_and_Qt4

If you prefer not to use scons, you should at least use pkg-config to get
those compiler options. Anyway SCons path is strongly recommended.

http://iua-share.upf.edu/wikis/clam/index.php/Compiling_with_CLAM_without_SCons



On Monday 15 December 2008 12:13:33 Vincent SHAO wrote:
> *Hi, everyone
> I just downloaded the Clam library, followed all the instructions to
> install it into my Ubuntu 8.04.
>
> When I pasted the code on the web
> http://www.clam.iua.upf.edu/wikis/clam/index.php/Constructing_and_playing_a
>_simple_network, to make sure that everything set. *
>
> #include <CLAM/Network.hxx>
> #include <CLAM/PANetworkPlayer.hxx>
> #include <CLAM/MonoAudioFileReader.hxx>
>
> int error(const std::string & msg)
> {
>       std::cerr << msg << std::endl;
>       return -1;
> }
>
> int main(int argc, char ** argv)
> {
>       if (argc!=2) return error ("needs a filename.");
>
>       CLAM::Network network;
>
>       std::string reader = network.AddProcessing("MonoAudioFileReader");
>       // Configure the reader
>       CLAM::MonoAudioFileReaderConfig cfg;
>       cfg.SetSourceFile(argv[1]);
>       if (!network.ConfigureProcessing(reader, cfg))
>                return error("Could not open the file");
>       int length = ((CLAM::MonoAudioFileReader &)
> network.GetProcessing(reader)).GetHeader().GetLength()/1000;
>
>       // Add an audio sink and connect its input to the reader's output
>       std::string sink = network.AddProcessing("AudioSink");
>       network.ConnectPorts(reader+".Samples Read", sink+".AudioIn");
>
>       // Set the audio backend to PortAudio
>       network.SetPlayer(new CLAM::PANetworkPlayer);
>       network.Start();
>       sleep(length);
>       network.Stop();
> }
>
>
> *but it gave me a error like below, when i compiled it.*
>
> /usr/local/include/CLAM/AudioFileFormats.hxx:26:2: error: #error
> USE_SNDFILE was not set to 1 in your settings.cfg file, but you are
> including files that require this. Please fix your settings.cfg
> *
> then I modified the audiofileformats.hxx , comment the those lines.
>
> then I compiled myfirstclam.cpp again, it return those errors below:
> *
> /tmp/cc0JIYqu.o: In function `main':
> first_clam.cpp:(.text+0x2be): undefined reference to
> `CLAM::FlattenedNetwork::AddProcessing(std::basic_string<char,
> std::char_traits<char>, std::allocator<char> > const&)'
> first_clam.cpp:(.text+0x3a1): undefined reference to
> `CLAM::FlattenedNetwork::ConfigureProcessing(std::basic_string<char,
> std::char_traits<char>, std::allocator<char> > const&,
> CLAM::ProcessingConfig const&)'
> first_clam.cpp:(.text+0x45f): undefined reference to
> `CLAM::FlattenedNetwork::GetProcessing(std::basic_string<char,
> std::char_traits<char>, std::allocator<char> > const&) const'
> first_clam.cpp:(.text+0x4df): undefined reference to
> `CLAM::FlattenedNetwork::AddProcessing(std::basic_string<char,
> std::char_traits<char>, std::allocator<char> > const&)'
> first_clam.cpp:(.text+0x593): undefined reference to
> `CLAM::FlattenedNetwork::ConnectPorts(std::basic_string<char,
> std::char_traits<char>, std::allocator<char> > const&,
> std::basic_string<char, std::char_traits<char>, std::allocator<char> >
> const&)'
> first_clam.cpp:(.text+0x60e): undefined reference to
> `CLAM::PANetworkPlayer::PANetworkPlayer()'
> first_clam.cpp:(.text+0x626): undefined reference to
> `CLAM::FlattenedNetwork::SetPlayer(CLAM::NetworkPlayer*)'
> first_clam.cpp:(.text+0x658): undefined reference to
> `CLAM::FlattenedNetwork::Start()'
> first_clam.cpp:(.text+0x671): undefined reference to
> `CLAM::FlattenedNetwork::Stop()'
> /tmp/cc0JIYqu.o: In function `CLAM::Network::Network()':
> first_clam.cpp:(.text._ZN4CLAM7NetworkC1Ev[CLAM::Network::Network()]+0xd):
> undefined reference to `CLAM::FlattenedNetwork::FlattenedNetwork()'
> /tmp/cc0JIYqu.o: In function `CLAM::Network::~Network()':
> first_clam.cpp:(.text._ZN4CLAM7NetworkD0Ev[CLAM::Network::~Network()]+0x17)
>: undefined reference to `CLAM::FlattenedNetwork::~FlattenedNetwork()'
> /tmp/cc0JIYqu.o: In function `CLAM::Network::~Network()':
> first_clam.cpp:(.text._ZN4CLAM7NetworkD1Ev[CLAM::Network::~Network()]+0x17)
>: undefined reference to `CLAM::FlattenedNetwork::~FlattenedNetwork()'
> /tmp/cc0JIYqu.o: In function
> `CLAM::MonoAudioFileReaderConfig::AddSourceFile()':
> first_clam.cpp:(.text._ZN4CLAM25MonoAudioFileReaderConfig13AddSourceFileEv[
>CLAM::MonoAudioFileReaderConfig::AddSourceFile()]+0x1d): undefined reference
> to `CLAM::DynamicType::AddAttr_(unsigned int,
> unsigned int)'
> /tmp/cc0JIYqu.o: In function
> `CLAM::MonoAudioFileReaderConfig::AddSelectedChannel()':
> first_clam.cpp:(.text._ZN4CLAM25MonoAudioFileReaderConfig18AddSelectedChann
>elEv[CLAM::MonoAudioFileReaderConfig::AddSelectedChannel()]+0x1d): undefined
> reference to `CLAM::DynamicType::AddAttr_(unsigned int,
> unsigned int)'
> /tmp/cc0JIYqu.o: In function `CLAM::MonoAudioFileReaderConfig::AddLoop()':
> first_clam.cpp:(.text._ZN4CLAM25MonoAudioFileReaderConfig7AddLoopEv[CLAM::M
>onoAudioFileReaderConfig::AddLoop()]+0x1d): undefined reference to
> `CLAM::DynamicType::AddAttr_(unsigned int,
> unsigned int)'
> /tmp/cc0JIYqu.o: In function
> `CLAM::XMLAdapter<CLAM::AudioInFilename>::XMLAdapter(CLAM::AudioInFilename&
>, char const*, bool)':
> first_clam.cpp:(.text._ZN4CLAM10XMLAdapterINS_15AudioInFilenameEEC1ERS1_PKc
>b[CLAM::XMLAdapter<CLAM::AudioInFilename>::XMLAdapter(CLAM::AudioInFilename&
>, char const*, bool)]+0x22): undefined reference to
> `CLAM::BasicXMLable::BasicXMLable(char const*, bool)'
> /tmp/cc0JIYqu.o: In function `CLAM::XMLAdapter<int>::XMLAdapter(int&,
> char const*, bool)':
> first_clam.cpp:(.text._ZN4CLAM10XMLAdapterIiEC1ERiPKcb[CLAM::XMLAdapter<int
>>::XMLAdapter(int&, char const*, bool)]+0x22): undefined reference to
> `CLAM::BasicXMLable::BasicXMLable(char const*, bool)'
> /tmp/cc0JIYqu.o: In function
> `CLAM::XMLAdapter<bool>::XMLAdapter(bool&, char const*, bool)':
> first_clam.cpp:(.text._ZN4CLAM10XMLAdapterIbEC1ERbPKcb[CLAM::XMLAdapter<boo
>l>::XMLAdapter(bool&, char const*, bool)]+0x22): undefined reference to
> `CLAM::BasicXMLable::BasicXMLable(char const*, bool)'
> /tmp/cc0JIYqu.o: In function
> `CLAM::XMLAdapter<CLAM::AudioInFilename>::XMLContent(std::basic_istream<cha
>r, std::char_traits<char> >&)':
> first_clam.cpp:(.text._ZN4CLAM10XMLAdapterINS_15AudioInFilenameEE10XMLConte
>ntERSi[CLAM::XMLAdapter<CLAM::AudioInFilename>::XMLContent(std::basic_istrea
>m<char, std::char_traits<char> >&)]+0x1a): undefined reference to
> `CLAM::operator>>(std::basic_istream<char, std::char_traits<char> >&,
> CLAM::Text&)'
> /tmp/cc0JIYqu.o: In function
> `CLAM::MonoAudioFileReaderConfig::RemoveSourceFile()':
> first_clam.cpp:(.text._ZN4CLAM25MonoAudioFileReaderConfig16RemoveSourceFile
>Ev[CLAM::MonoAudioFileReaderConfig::RemoveSourceFile()]+0x15): undefined
> reference to `CLAM::DynamicType::RemoveAttr_(unsigned int)'
> /tmp/cc0JIYqu.o: In function
> `CLAM::MonoAudioFileReaderConfig::RemoveSelectedChannel()':
> first_clam.cpp:(.text._ZN4CLAM25MonoAudioFileReaderConfig21RemoveSelectedCh
>annelEv[CLAM::MonoAudioFileReaderConfig::RemoveSelectedChannel()]+0x15):
> undefined reference to `CLAM::DynamicType::RemoveAttr_(unsigned int)'
> /tmp/cc0JIYqu.o: In function
> `CLAM::MonoAudioFileReaderConfig::RemoveLoop()':
> first_clam.cpp:(.text._ZN4CLAM25MonoAudioFileReaderConfig10RemoveLoopEv[CLA
>M::MonoAudioFileReaderConfig::RemoveLoop()]+0x15): undefined reference to
> `CLAM::DynamicType::RemoveAttr_(unsigned int)' /tmp/cc0JIYqu.o: In function
> `CLAM::MonoAudioFileReaderConfig::SetSelectedChannel(int const&)':
> first_clam.cpp:(.text._ZN4CLAM25MonoAudioFileReaderConfig18SetSelectedChann
>elERKi[CLAM::MonoAudioFileReaderConfig::SetSelectedChannel(int
> const&)]+0x4f): undefined reference to
> `CLAM::ErrAssertionFailed::ErrAssertionFailed(char const*, char
> const*, int)'
> /tmp/cc0JIYqu.o: In function
> `CLAM::MonoAudioFileReaderConfig::SetLoop(bool const&)':
> first_clam.cpp:(.text._ZN4CLAM25MonoAudioFileReaderConfig7SetLoopERKb[CLAM:
>:MonoAudioFileReaderConfig::SetLoop(bool const&)]+0x4f): undefined reference
> to
> `CLAM::ErrAssertionFailed::ErrAssertionFailed(char const*, char
> const*, int)'
> /tmp/cc0JIYqu.o: In function
> `CLAM::MonoAudioFileReaderConfig::GetSourceFile() const':
> first_clam.cpp:(.text._ZNK4CLAM25MonoAudioFileReaderConfig13GetSourceFileEv
>[CLAM::MonoAudioFileReaderConfig::GetSourceFile() const]+0x4f): undefined
> reference to
> `CLAM::ErrAssertionFailed::ErrAssertionFailed(char const*, char
> const*, int)'
> /tmp/cc0JIYqu.o: In function
> `CLAM::MonoAudioFileReaderConfig::GetSelectedChannel() const':
> first_clam.cpp:(.text._ZNK4CLAM25MonoAudioFileReaderConfig18GetSelectedChan
>nelEv[CLAM::MonoAudioFileReaderConfig::GetSelectedChannel() const]+0x4f):
> undefined reference to
> `CLAM::ErrAssertionFailed::ErrAssertionFailed(char const*, char
> const*, int)'
> /tmp/cc0JIYqu.o: In function `CLAM::MonoAudioFileReaderConfig::GetLoop()
> const':
> first_clam.cpp:(.text._ZNK4CLAM25MonoAudioFileReaderConfig7GetLoopEv[CLAM::
>MonoAudioFileReaderConfig::GetLoop() const]+0x4f): undefined reference to
> `CLAM::ErrAssertionFailed::ErrAssertionFailed(char const*, char
> const*, int)'
> /tmp/cc0JIYqu.o:first_clam.cpp:(.text._ZN4CLAM25MonoAudioFileReaderConfig13
>SetSourceFileERKNS_15AudioInFilenameE[CLAM::MonoAudioFileReaderConfig::SetSo
>urceFile(CLAM::AudioInFilename const&)]+0x4f): more undefined references to
> `CLAM::ErrAssertionFailed::ErrAssertionFailed(char const*, char
> const*, int)' follow
> /tmp/cc0JIYqu.o: In function
> `CLAM::MonoAudioFileReaderConfig::LoadDynAttributes(CLAM::Storage&)':
> first_clam.cpp:(.text._ZN4CLAM25MonoAudioFileReaderConfig17LoadDynAttribute
>sERNS_7StorageE[CLAM::MonoAudioFileReaderConfig::LoadDynAttributes(CLAM::Sto
>rage&)]+0x18): undefined reference to `CLAM::DynamicType::UpdateData()'
> first_clam.cpp:(.text._ZN4CLAM25MonoAudioFileReaderConfig17LoadDynAttribute
>sERNS_7StorageE[CLAM::MonoAudioFileReaderConfig::LoadDynAttributes(CLAM::Sto
>rage&)]+0x3d): undefined reference to `CLAM::DynamicType::UpdateData()'
> /tmp/cc0JIYqu.o: In function `CLAM::AudioFileHeader::GetLength() const':
> first_clam.cpp:(.text._ZNK4CLAM15AudioFileHeader9GetLengthEv[CLAM::AudioFil
>eHeader::GetLength() const]+0x4f): undefined reference to
> `CLAM::ErrAssertionFailed::ErrAssertionFailed(char const*, char
> const*, int)'
> /tmp/cc0JIYqu.o: In function
> `CLAM::ErrAssertionFailed::~ErrAssertionFailed()':
> first_clam.cpp:(.text._ZN4CLAM18ErrAssertionFailedD1Ev[CLAM::ErrAssertionFa
>iled::~ErrAssertionFailed()]+0x17): undefined reference to
> `CLAM::Err::~Err()'
> /tmp/cc0JIYqu.o: In function
> `CLAM::ErrAssertionFailed::~ErrAssertionFailed()':
> first_clam.cpp:(.text._ZN4CLAM18ErrAssertionFailedD0Ev[CLAM::ErrAssertionFa
>iled::~ErrAssertionFailed()]+0x17): undefined reference to
> `CLAM::Err::~Err()'
> /tmp/cc0JIYqu.o: In function
> `CLAM::ProcessingConfig::ProcessingConfig(CLAM::ProcessingConfig
> const&, bool, bool)':
> first_clam.cpp:(.text._ZN4CLAM16ProcessingConfigC2ERKS0_bb[CLAM::Processing
>Config::ProcessingConfig(CLAM::ProcessingConfig const&, bool, bool)]+0x31):
> undefined reference to
> `CLAM::DynamicType::DynamicType(CLAM::DynamicType const&, bool, bool)'
> /tmp/cc0JIYqu.o: In function `CLAM::ProcessingConfig::~ProcessingConfig()':
> first_clam.cpp:(.text._ZN4CLAM16ProcessingConfigD0Ev[CLAM::ProcessingConfig
>::~ProcessingConfig()]+0x17): undefined reference to
> `CLAM::DynamicType::~DynamicType()'
> /tmp/cc0JIYqu.o: In function `CLAM::ProcessingConfig::~ProcessingConfig()':
> first_clam.cpp:(.text._ZN4CLAM16ProcessingConfigD1Ev[CLAM::ProcessingConfig
>::~ProcessingConfig()]+0x17): undefined reference to
> `CLAM::DynamicType::~DynamicType()'
> /tmp/cc0JIYqu.o: In function `CLAM::ProcessingConfig::~ProcessingConfig()':
> first_clam.cpp:(.text._ZN4CLAM16ProcessingConfigD2Ev[CLAM::ProcessingConfig
>::~ProcessingConfig()]+0x17): undefined reference to
> `CLAM::DynamicType::~DynamicType()'
> /tmp/cc0JIYqu.o: In function
> `CLAM::ProcessingConfig::ProcessingConfig(int)':
> first_clam.cpp:(.text._ZN4CLAM16ProcessingConfigC2Ei[CLAM::ProcessingConfig
>::ProcessingConfig(int)]+0x14): undefined reference to
> `CLAM::DynamicType::DynamicType(int)'
> /tmp/cc0JIYqu.o: In function
> `CLAM::MonoAudioFileReaderConfig::MonoAudioFileReaderConfig()':
> first_clam.cpp:(.text._ZN4CLAM25MonoAudioFileReaderConfigC1Ev[CLAM::MonoAud
>ioFileReaderConfig::MonoAudioFileReaderConfig()]+0x36): undefined reference
> to
> `CLAM::MonoAudioFileReaderConfig::DefaultInit()'
> /tmp/cc0JIYqu.o:(.rodata._ZTVN4CLAM7NetworkE[vtable for
> CLAM::Network]+0x10): undefined reference to
> `CLAM::FlattenedNetwork::StoreOn(CLAM::Storage&) const'
> /tmp/cc0JIYqu.o:(.rodata._ZTVN4CLAM7NetworkE[vtable for
> CLAM::Network]+0x14): undefined reference to
> `CLAM::FlattenedNetwork::LoadFrom(CLAM::Storage&)'
> /tmp/cc0JIYqu.o:(.rodata._ZTVN4CLAM7NetworkE[vtable for
> CLAM::Network]+0x24): undefined reference to
> `CLAM::FlattenedNetwork::Clear()'
> /tmp/cc0JIYqu.o:(.rodata._ZTVN4CLAM7NetworkE[vtable for
> CLAM::Network]+0x30): undefined reference to
> `CLAM::FlattenedNetwork::GetNetworkId(CLAM::Processing const*) const'
> /tmp/cc0JIYqu.o:(.rodata._ZTVN4CLAM7NetworkE[vtable for
> CLAM::Network]+0x34): undefined reference to
> `CLAM::FlattenedNetwork::BeginProcessings()'
> /tmp/cc0JIYqu.o:(.rodata._ZTVN4CLAM7NetworkE[vtable for
> CLAM::Network]+0x38): undefined reference to
> `CLAM::FlattenedNetwork::EndProcessings()'
> /tmp/cc0JIYqu.o:(.rodata._ZTVN4CLAM7NetworkE[vtable for
> CLAM::Network]+0x3c): undefined reference to
> `CLAM::FlattenedNetwork::BeginProcessings() const'
> /tmp/cc0JIYqu.o:(.rodata._ZTVN4CLAM7NetworkE[vtable for
> CLAM::Network]+0x40): undefined reference to
> `CLAM::FlattenedNetwork::EndProcessings() const'
> /tmp/cc0JIYqu.o:(.rodata._ZTVN4CLAM7NetworkE[vtable for
> CLAM::Network]+0x44): undefined reference to
> `CLAM::FlattenedNetwork::GetInPortsConnectedTo(std::basic_string<char,
> std::char_traits<char>, std::allocator<char> > const&) const'
> /tmp/cc0JIYqu.o:(.rodata._ZTVN4CLAM7NetworkE[vtable for
> CLAM::Network]+0x48): undefined reference to
> `CLAM::FlattenedNetwork::GetInControlsConnectedTo(std::basic_string<char,
> std::char_traits<char>, std::allocator<char> > const&) const'
> /tmp/cc0JIYqu.o:(.rodata._ZTVN4CLAM7NetworkE[vtable for
> CLAM::Network]+0x4c): undefined reference to
> `CLAM::FlattenedNetwork::GetInPortsConnectedTo(CLAM::OutPortBase&)
> const'
> /tmp/cc0JIYqu.o:(.rodata._ZTVN4CLAM7NetworkE[vtable for
> CLAM::Network]+0x50): undefined reference to
> `CLAM::FlattenedNetwork::GetConnectorIdentifier(std::basic_string<char,
> std::char_traits<char>, std::allocator<char> > const&) const'
> /tmp/cc0JIYqu.o:(.rodata._ZTVN4CLAM7NetworkE[vtable for
> CLAM::Network]+0x54): undefined reference to
> `CLAM::FlattenedNetwork::GetProcessingIdentifier(std::basic_string<char,
> std::char_traits<char>, std::allocator<char> > const&) const'
> /tmp/cc0JIYqu.o:(.rodata._ZTVN4CLAM7NetworkE[vtable for
> CLAM::Network]+0x58): undefined reference to
> `CLAM::FlattenedNetwork::GetInPortByCompleteName(std::basic_string<char,
> std::char_traits<char>, std::allocator<char> > const&) const'
> /tmp/cc0JIYqu.o:(.rodata._ZTVN4CLAM7NetworkE[vtable for
> CLAM::Network]+0x5c): undefined reference to
> `CLAM::FlattenedNetwork::GetOutPortByCompleteName(std::basic_string<char,
> std::char_traits<char>, std::allocator<char> > const&) const'
> /tmp/cc0JIYqu.o:(.rodata._ZTVN4CLAM7NetworkE[vtable for
> CLAM::Network]+0x60): undefined reference to
> `CLAM::FlattenedNetwork::GetInControlByCompleteName(std::basic_string<char,
> std::char_traits<char>, std::allocator<char> > const&) const'
> /tmp/cc0JIYqu.o:(.rodata._ZTVN4CLAM7NetworkE[vtable for
> CLAM::Network]+0x64): undefined reference to
> `CLAM::FlattenedNetwork::GetOutControlByCompleteName(std::basic_string<char
>, std::char_traits<char>, std::allocator<char> > const&) const'
> /tmp/cc0JIYqu.o:(.rodata._ZTVN4CLAM7NetworkE[vtable for
> CLAM::Network]+0x68): undefined reference to
> `CLAM::FlattenedNetwork::ConnectPorts(std::basic_string<char,
> std::char_traits<char>, std::allocator<char> > const&,
> std::basic_string<char, std::char_traits<char>, std::allocator<char> >
> const&)'
> /tmp/cc0JIYqu.o:(.rodata._ZTVN4CLAM7NetworkE[vtable for
> CLAM::Network]+0x6c): undefined reference to
> `CLAM::FlattenedNetwork::ConnectControls(std::basic_string<char,
> std::char_traits<char>, std::allocator<char> > const&,
> std::basic_string<char, std::char_traits<char>, std::allocator<char> >
> const&)'
> /tmp/cc0JIYqu.o:(.rodata._ZTVN4CLAM7NetworkE[vtable for
> CLAM::Network]+0x70): undefined reference to
> `CLAM::FlattenedNetwork::DisconnectPorts(std::basic_string<char,
> std::char_traits<char>, std::allocator<char> > const&,
> std::basic_string<char, std::char_traits<char>, std::allocator<char> >
> const&)'
> /tmp/cc0JIYqu.o:(.rodata._ZTVN4CLAM7NetworkE[vtable for
> CLAM::Network]+0x74): undefined reference to
> `CLAM::FlattenedNetwork::DisconnectControls(std::basic_string<char,
> std::char_traits<char>, std::allocator<char> > const&,
> std::basic_string<char, std::char_traits<char>, std::allocator<char> >
> const&)'
> /tmp/cc0JIYqu.o:(.rodata._ZTVN4CLAM7NetworkE[vtable for
> CLAM::Network]+0x78): undefined reference to
> `CLAM::FlattenedNetwork::GetUnconnectedInPorts() const'
> /tmp/cc0JIYqu.o:(.rodata._ZTVN4CLAM7NetworkE[vtable for
> CLAM::Network]+0x7c): undefined reference to
> `CLAM::FlattenedNetwork::HasProcessing(std::basic_string<char,
> std::char_traits<char>, std::allocator<char> > const&) const'
> /tmp/cc0JIYqu.o:(.rodata._ZTVN4CLAM7NetworkE[vtable for
> CLAM::Network]+0x80): undefined reference to
> `CLAM::FlattenedNetwork::GetProcessing(std::basic_string<char,
> std::char_traits<char>, std::allocator<char> > const&) const'
> /tmp/cc0JIYqu.o:(.rodata._ZTVN4CLAM7NetworkE[vtable for
> CLAM::Network]+0x84): undefined reference to
> `CLAM::FlattenedNetwork::AddProcessing(std::basic_string<char,
> std::char_traits<char>, std::allocator<char> > const&,
> CLAM::Processing*)'
> /tmp/cc0JIYqu.o:(.rodata._ZTVN4CLAM7NetworkE[vtable for
> CLAM::Network]+0x88): undefined reference to
> `CLAM::FlattenedNetwork::AddProcessing(std::basic_string<char,
> std::char_traits<char>, std::allocator<char> > const&,
> std::basic_string<char, std::char_traits<char>, std::allocator<char> >
> const&)'
> /tmp/cc0JIYqu.o:(.rodata._ZTVN4CLAM7NetworkE[vtable for
> CLAM::Network]+0x8c): undefined reference to
> `CLAM::FlattenedNetwork::AddProcessing(std::basic_string<char,
> std::char_traits<char>, std::allocator<char> > const&)'
> /tmp/cc0JIYqu.o:(.rodata._ZTVN4CLAM7NetworkE[vtable for
> CLAM::Network]+0x90): undefined reference to
> `CLAM::FlattenedNetwork::GetUnusedName(std::basic_string<char,
> std::char_traits<char>, std::allocator<char> > const&) const'
> /tmp/cc0JIYqu.o:(.rodata._ZTVN4CLAM7NetworkE[vtable for
> CLAM::Network]+0x94): undefined reference to
> `CLAM::FlattenedNetwork::RenameProcessing(std::basic_string<char,
> std::char_traits<char>, std::allocator<char> > const&,
> std::basic_string<char, std::char_traits<char>, std::allocator<char> >
> const&)'
> /tmp/cc0JIYqu.o:(.rodata._ZTVN4CLAM7NetworkE[vtable for
> CLAM::Network]+0x98): undefined reference to
> `CLAM::FlattenedNetwork::RemoveProcessing(std::basic_string<char,
> std::char_traits<char>, std::allocator<char> > const&)'
> /tmp/cc0JIYqu.o:(.rodata._ZTVN4CLAM7NetworkE[vtable for
> CLAM::Network]+0x9c): undefined reference to
> `CLAM::FlattenedNetwork::IsReady() const'
> /tmp/cc0JIYqu.o:(.rodata._ZTVN4CLAM7NetworkE[vtable for
> CLAM::Network]+0xa0): undefined reference to
> `CLAM::FlattenedNetwork::IsEmpty() const'
> /tmp/cc0JIYqu.o:(.rodata._ZTVN4CLAM7NetworkE[vtable for
> CLAM::Network]+0xa4): undefined reference to
> `CLAM::FlattenedNetwork::HasMisconfiguredProcessings() const'
> /tmp/cc0JIYqu.o:(.rodata._ZTVN4CLAM7NetworkE[vtable for
> CLAM::Network]+0xa8): undefined reference to
> `CLAM::FlattenedNetwork::HasUnconnectedInPorts() const'
> /tmp/cc0JIYqu.o:(.rodata._ZTVN4CLAM7NetworkE[vtable for
> CLAM::Network]+0xac): undefined reference to
> `CLAM::FlattenedNetwork::HasSyncSource() const'
> /tmp/cc0JIYqu.o:(.rodata._ZTVN4CLAM7NetworkE[vtable for
> CLAM::Network]+0xb0): undefined reference to
> `CLAM::FlattenedNetwork::ConfigureProcessing(std::basic_string<char,
> std::char_traits<char>, std::allocator<char> > const&,
> CLAM::ProcessingConfig const&)'
> /tmp/cc0JIYqu.o:(.rodata._ZTVN4CLAM7NetworkE[vtable for
> CLAM::Network]+0xb4): undefined reference to
> `CLAM::FlattenedNetwork::ReconfigureAllProcessings()'
> /tmp/cc0JIYqu.o:(.rodata._ZTVN4CLAM7NetworkE[vtable for
> CLAM::Network]+0xb8): undefined reference to
> `CLAM::FlattenedNetwork::GetConfigurationErrors() const'
> /tmp/cc0JIYqu.o:(.rodata._ZTVN4CLAM7NetworkE[vtable for
> CLAM::Network]+0xbc): undefined reference to
> `CLAM::FlattenedNetwork::UpdateSelections(std::list<std::basic_string<char,
> std::char_traits<char>, std::allocator<char> >,
> std::allocator<std::basic_string<char, std::char_traits<char>,
> std::allocator<char> > > > const&)'
> /tmp/cc0JIYqu.o:(.rodata._ZTVN4CLAM7NetworkE[vtable for
> CLAM::Network]+0xc4): undefined reference to
> `CLAM::FlattenedNetwork::SetProcessingsGeometries(std::map<std::basic_strin
>g<char, std::char_traits<char>, std::allocator<char> >,
> CLAM::BaseNetwork::Geometry, std::less<std::basic_string<char,
> std::char_traits<char>, std::allocator<char> > >,
> std::allocator<std::pair<std::basic_string<char,
> std::char_traits<char>, std::allocator<char> > const,
> CLAM::BaseNetwork::Geometry> > > const&)'
> /tmp/cc0JIYqu.o:(.rodata._ZTVN4CLAM7NetworkE[vtable for
> CLAM::Network]+0xc8): undefined reference to
> `CLAM::FlattenedNetwork::GetAndClearGeometries()'
> /tmp/cc0JIYqu.o:(.rodata._ZTVN4CLAM7NetworkE[vtable for
> CLAM::Network]+0xcc): undefined reference to
> `CLAM::FlattenedNetwork::BackendBufferSize()'
> /tmp/cc0JIYqu.o:(.rodata._ZTVN4CLAM7NetworkE[vtable for
> CLAM::Network]+0xd0): undefined reference to
> `CLAM::FlattenedNetwork::BackendSampleRate()'
> /tmp/cc0JIYqu.o:(.rodata._ZTVN4CLAM7NetworkE[vtable for
> CLAM::Network]+0xd4): undefined reference to
> `CLAM::FlattenedNetwork::HasSelectionAndContains(std::basic_string<char,
> std::char_traits<char>, std::allocator<char> > const&) const'
> /tmp/cc0JIYqu.o:(.rodata._ZTIN4CLAM7NetworkE[typeinfo for
> CLAM::Network]+0x8): undefined reference to `typeinfo for
> CLAM::FlattenedNetwork'
> /tmp/cc0JIYqu.o:(.rodata._ZTVN4CLAM25MonoAudioFileReaderConfigE[vtable
> for CLAM::MonoAudioFileReaderConfig]+0x18): undefined reference to
> `CLAM::DynamicType::ShallowCopy() const'
> /tmp/cc0JIYqu.o:(.rodata._ZTVN4CLAM25MonoAudioFileReaderConfigE[vtable
> for CLAM::MonoAudioFileReaderConfig]+0x1c): undefined reference to
> `CLAM::DynamicType::DeepCopy() const'
> /tmp/cc0JIYqu.o:(.rodata._ZTVN4CLAM25MonoAudioFileReaderConfigE[vtable
> for CLAM::MonoAudioFileReaderConfig]+0x28): undefined reference to
> `CLAM::DynamicType::InformAttr_(unsigned int, char const*, unsigned
> int, char const*, bool, void* (*)(void*), void* (*)(void*, void*),
> void (*)(void*))'
> /tmp/cc0JIYqu.o:(.rodata._ZTIN4CLAM16ProcessingConfigE[typeinfo for
> CLAM::ProcessingConfig]+0x8): undefined reference to `typeinfo for
> CLAM::DynamicType'
> /tmp/cc0JIYqu.o:(.rodata._ZTIN4CLAM18ErrAssertionFailedE[typeinfo for
> CLAM::ErrAssertionFailed]+0x8): undefined reference to `typeinfo for
> CLAM::Err'
> /tmp/cc0JIYqu.o:(.rodata._ZTVN4CLAM16ProcessingConfigE[vtable for
> CLAM::ProcessingConfig]+0x18): undefined reference to
> `CLAM::DynamicType::ShallowCopy() const'
> /tmp/cc0JIYqu.o:(.rodata._ZTVN4CLAM16ProcessingConfigE[vtable for
> CLAM::ProcessingConfig]+0x1c): undefined reference to
> `CLAM::DynamicType::DeepCopy() const'
> /tmp/cc0JIYqu.o:(.rodata._ZTVN4CLAM16ProcessingConfigE[vtable for
> CLAM::ProcessingConfig]+0x28): undefined reference to
> `CLAM::DynamicType::InformAttr_(unsigned int, char const*, unsigned
> int, char const*, bool, void* (*)(void*), void* (*)(void*, void*),
> void (*)(void*))'
> collect2: ld returned 1 exit status
> *
> What should i do this time. I am totally lost.
>
> Can you kindly lend me a hand?
>
> Great Thanks!
>
> Best wishes!*





--
Vincent SHAO
Beihang Univ.(aka. Beijing Univ. of Aeronautics and Astronautics)
_______________________________________________
CLAM mailing list
CLAM@...
http://clam.iua.upf.edu
David García Garzón | 15 Dec 2008 20:33
Favicon

Re: lose in errors

I thought you were compiling your own application using clam and I was giving 
instructions on how to build the application example code on the wiki. If you 
just want to try the existing apps (mostly NetworkEditor) consider to install 
the already built packages for ubuntu (see the download page).
http://clam.iua.upf.edu/download-linux.html

So i am not sure what are you looking for. There is a nice wiki page 
explaining the entry points for all roads (using the applications, compiling 
from sources, developing apps...).
http://iua-share.upf.edu/wikis/clam/index.php/Approaching_CLAM

Anyway if still you need help, feel free to ask.

On Monday 15 December 2008 16:30:08 Vincent SHAO wrote:
> Thanks for your kindly answer, but, sorry,  I don't really follow. I just
> want to install the clam library and could be able to run some amazing demo
> given on the website.
>
> I have instralled all the CLAM dependencies, including:
>
> build-essential scons ladspa-sdk libxerces27-dev libfftw3-dev libjack-dev
> libmad0-dev libogg-dev libsndfile1-dev libvorbis-dev libid3-3.8.3-dev
> libasound2-dev portaudio19-dev
>
> and installed the clam without any reported error:
> $ scons configure
> $ scons
> $ sudo scons install
>
> sorry, i still don't know the problem here.
>
> On Mon, Dec 15, 2008 at 6:46 AM, David García Garzón 
<dgarcia@...>wrote:
> > It looks like there is a lot of clam needed compilation options missing
> > in there. Are you using the provided SCons file in the wiki?
> >
> >
> > http://iua-share.upf.edu/wikis/clam/index.php/Minimal_SConstruct_to_build
> >_with_CLAM_and_Qt4
> >
> > If you prefer not to use scons, you should at least use pkg-config to get
> > those compiler options. Anyway SCons path is strongly recommended.
> >
> >
> > http://iua-share.upf.edu/wikis/clam/index.php/Compiling_with_CLAM_without
> >_SCons
> >
> > On Monday 15 December 2008 12:13:33 Vincent SHAO wrote:
> > > *Hi, everyone
> > > I just downloaded the Clam library, followed all the instructions to
> > > install it into my Ubuntu 8.04.
> > >
> > > When I pasted the code on the web
> >
> > http://www.clam.iua.upf.edu/wikis/clam/index.php/Constructing_and_playing
> >_a
> >
> > >_simple_network, to make sure that everything set. *
> > >
> > > #include <CLAM/Network.hxx>
> > > #include <CLAM/PANetworkPlayer.hxx>
> > > #include <CLAM/MonoAudioFileReader.hxx>
> > >
> > > int error(const std::string & msg)
> > > {
> > >       std::cerr << msg << std::endl;
> > >       return -1;
> > > }
> > >
> > > int main(int argc, char ** argv)
> > > {
> > >       if (argc!=2) return error ("needs a filename.");
> > >
> > >       CLAM::Network network;
> > >
> > >       std::string reader =
> > > network.AddProcessing("MonoAudioFileReader"); // Configure the reader
> > >       CLAM::MonoAudioFileReaderConfig cfg;
> > >       cfg.SetSourceFile(argv[1]);
> > >       if (!network.ConfigureProcessing(reader, cfg))
> > >                return error("Could not open the file");
> > >       int length = ((CLAM::MonoAudioFileReader &)
> > > network.GetProcessing(reader)).GetHeader().GetLength()/1000;
> > >
> > >       // Add an audio sink and connect its input to the reader's output
> > >       std::string sink = network.AddProcessing("AudioSink");
> > >       network.ConnectPorts(reader+".Samples Read", sink+".AudioIn");
> > >
> > >       // Set the audio backend to PortAudio
> > >       network.SetPlayer(new CLAM::PANetworkPlayer);
> > >       network.Start();
> > >       sleep(length);
> > >       network.Stop();
> > > }
> > >
> > >
> > > *but it gave me a error like below, when i compiled it.*
> > >
> > > /usr/local/include/CLAM/AudioFileFormats.hxx:26:2: error: #error
> > > USE_SNDFILE was not set to 1 in your settings.cfg file, but you are
> > > including files that require this. Please fix your settings.cfg
> > > *
> > > then I modified the audiofileformats.hxx , comment the those lines.
> > >
> > > then I compiled myfirstclam.cpp again, it return those errors below:
> > > *
> > > /tmp/cc0JIYqu.o: In function `main':
> > > first_clam.cpp:(.text+0x2be): undefined reference to
> > > `CLAM::FlattenedNetwork::AddProcessing(std::basic_string<char,
> > > std::char_traits<char>, std::allocator<char> > const&)'
> > > first_clam.cpp:(.text+0x3a1): undefined reference to
> > > `CLAM::FlattenedNetwork::ConfigureProcessing(std::basic_string<char,
> > > std::char_traits<char>, std::allocator<char> > const&,
> > > CLAM::ProcessingConfig const&)'
> > > first_clam.cpp:(.text+0x45f): undefined reference to
> > > `CLAM::FlattenedNetwork::GetProcessing(std::basic_string<char,
> > > std::char_traits<char>, std::allocator<char> > const&) const'
> > > first_clam.cpp:(.text+0x4df): undefined reference to
> > > `CLAM::FlattenedNetwork::AddProcessing(std::basic_string<char,
> > > std::char_traits<char>, std::allocator<char> > const&)'
> > > first_clam.cpp:(.text+0x593): undefined reference to
> > > `CLAM::FlattenedNetwork::ConnectPorts(std::basic_string<char,
> > > std::char_traits<char>, std::allocator<char> > const&,
> > > std::basic_string<char, std::char_traits<char>, std::allocator<char> >
> > > const&)'
> > > first_clam.cpp:(.text+0x60e): undefined reference to
> > > `CLAM::PANetworkPlayer::PANetworkPlayer()'
> > > first_clam.cpp:(.text+0x626): undefined reference to
> > > `CLAM::FlattenedNetwork::SetPlayer(CLAM::NetworkPlayer*)'
> > > first_clam.cpp:(.text+0x658): undefined reference to
> > > `CLAM::FlattenedNetwork::Start()'
> > > first_clam.cpp:(.text+0x671): undefined reference to
> > > `CLAM::FlattenedNetwork::Stop()'
> > > /tmp/cc0JIYqu.o: In function `CLAM::Network::Network()':
> >
> > first_clam.cpp:(.text._ZN4CLAM7NetworkC1Ev[CLAM::Network::Network()]+0xd):
> > > undefined reference to `CLAM::FlattenedNetwork::FlattenedNetwork()'
> > > /tmp/cc0JIYqu.o: In function `CLAM::Network::~Network()':
> >
> > first_clam.cpp:(.text._ZN4CLAM7NetworkD0Ev[CLAM::Network::~Network()]+0x1
> >7)
> >
> > >: undefined reference to `CLAM::FlattenedNetwork::~FlattenedNetwork()'
> > >
> > > /tmp/cc0JIYqu.o: In function `CLAM::Network::~Network()':
> >
> > first_clam.cpp:(.text._ZN4CLAM7NetworkD1Ev[CLAM::Network::~Network()]+0x1
> >7)
> >
> > >: undefined reference to `CLAM::FlattenedNetwork::~FlattenedNetwork()'
> > >
> > > /tmp/cc0JIYqu.o: In function
> > > `CLAM::MonoAudioFileReaderConfig::AddSourceFile()':
> >
> > first_clam.cpp:(.text._ZN4CLAM25MonoAudioFileReaderConfig13AddSourceFileE
> >v[
> >
> > >CLAM::MonoAudioFileReaderConfig::AddSourceFile()]+0x1d): undefined
> >
> > reference
> >
> > > to `CLAM::DynamicType::AddAttr_(unsigned int,
> > > unsigned int)'
> > > /tmp/cc0JIYqu.o: In function
> > > `CLAM::MonoAudioFileReaderConfig::AddSelectedChannel()':
> >
> > first_clam.cpp:(.text._ZN4CLAM25MonoAudioFileReaderConfig18AddSelectedCha
> >nn
> >
> > >elEv[CLAM::MonoAudioFileReaderConfig::AddSelectedChannel()]+0x1d):
> >
> > undefined
> >
> > > reference to `CLAM::DynamicType::AddAttr_(unsigned int,
> > > unsigned int)'
> > > /tmp/cc0JIYqu.o: In function
> >
> > `CLAM::MonoAudioFileReaderConfig::AddLoop()':
> >
> > first_clam.cpp:(.text._ZN4CLAM25MonoAudioFileReaderConfig7AddLoopEv[CLAM:
> >:M
> >
> > >onoAudioFileReaderConfig::AddLoop()]+0x1d): undefined reference to
> > > `CLAM::DynamicType::AddAttr_(unsigned int,
> > > unsigned int)'
> > > /tmp/cc0JIYqu.o: In function
> >
> > `CLAM::XMLAdapter<CLAM::AudioInFilename>::XMLAdapter(CLAM::AudioInFilenam
> >e&
> >
> > >, char const*, bool)':
> >
> > first_clam.cpp:(.text._ZN4CLAM10XMLAdapterINS_15AudioInFilenameEEC1ERS1_P
> >Kc
> >
> > >b[CLAM::XMLAdapter<CLAM::AudioInFilename>::XMLAdapter(CLAM::AudioInFilen
> > >ame& , char const*, bool)]+0x22): undefined reference to
> > > `CLAM::BasicXMLable::BasicXMLable(char const*, bool)'
> > > /tmp/cc0JIYqu.o: In function `CLAM::XMLAdapter<int>::XMLAdapter(int&,
> > > char const*, bool)':
> >
> > first_clam.cpp:(.text._ZN4CLAM10XMLAdapterIiEC1ERiPKcb[CLAM::XMLAdapter<i
> >nt
> >
> > >>::XMLAdapter(int&, char const*, bool)]+0x22): undefined reference to
> > >
> > > `CLAM::BasicXMLable::BasicXMLable(char const*, bool)'
> > > /tmp/cc0JIYqu.o: In function
> > > `CLAM::XMLAdapter<bool>::XMLAdapter(bool&, char const*, bool)':
> >
> > first_clam.cpp:(.text._ZN4CLAM10XMLAdapterIbEC1ERbPKcb[CLAM::XMLAdapter<b
> >oo
> >
> > >l>::XMLAdapter(bool&, char const*, bool)]+0x22): undefined reference to
> > > `CLAM::BasicXMLable::BasicXMLable(char const*, bool)'
> > > /tmp/cc0JIYqu.o: In function
> >
> > `CLAM::XMLAdapter<CLAM::AudioInFilename>::XMLContent(std::basic_istream<c
> >ha
> >
> > >r, std::char_traits<char> >&)':
> >
> > first_clam.cpp:(.text._ZN4CLAM10XMLAdapterINS_15AudioInFilenameEE10XMLCon
> >te
> >
> > >ntERSi[CLAM::XMLAdapter<CLAM::AudioInFilename>::XMLContent(std::basic_is
> > >trea m<char, std::char_traits<char> >&)]+0x1a): undefined reference to
> > > `CLAM::operator>>(std::basic_istream<char, std::char_traits<char> >&,
> > > CLAM::Text&)'
> > > /tmp/cc0JIYqu.o: In function
> > > `CLAM::MonoAudioFileReaderConfig::RemoveSourceFile()':
> >
> > first_clam.cpp:(.text._ZN4CLAM25MonoAudioFileReaderConfig16RemoveSourceFi
> >le
> >
> > >Ev[CLAM::MonoAudioFileReaderConfig::RemoveSourceFile()]+0x15): undefined
> > > reference to `CLAM::DynamicType::RemoveAttr_(unsigned int)'
> > > /tmp/cc0JIYqu.o: In function
> > > `CLAM::MonoAudioFileReaderConfig::RemoveSelectedChannel()':
> >
> > first_clam.cpp:(.text._ZN4CLAM25MonoAudioFileReaderConfig21RemoveSelected
> >Ch
> >
> > >annelEv[CLAM::MonoAudioFileReaderConfig::RemoveSelectedChannel()]+0x15):
> > > undefined reference to `CLAM::DynamicType::RemoveAttr_(unsigned int)'
> > > /tmp/cc0JIYqu.o: In function
> > > `CLAM::MonoAudioFileReaderConfig::RemoveLoop()':
> >
> > first_clam.cpp:(.text._ZN4CLAM25MonoAudioFileReaderConfig10RemoveLoopEv[C
> >LA
> >
> > >M::MonoAudioFileReaderConfig::RemoveLoop()]+0x15): undefined reference
> > > to `CLAM::DynamicType::RemoveAttr_(unsigned int)' /tmp/cc0JIYqu.o: In
> >
> > function
> >
> > > `CLAM::MonoAudioFileReaderConfig::SetSelectedChannel(int const&)':
> >
> > first_clam.cpp:(.text._ZN4CLAM25MonoAudioFileReaderConfig18SetSelectedCha
> >nn
> >
> > >elERKi[CLAM::MonoAudioFileReaderConfig::SetSelectedChannel(int
> > > const&)]+0x4f): undefined reference to
> > > `CLAM::ErrAssertionFailed::ErrAssertionFailed(char const*, char
> > > const*, int)'
> > > /tmp/cc0JIYqu.o: In function
> > > `CLAM::MonoAudioFileReaderConfig::SetLoop(bool const&)':
> >
> > first_clam.cpp:
(.text._ZN4CLAM25MonoAudioFileReaderConfig7SetLoopERKb[CLAM:
> > >:MonoAudioFileReaderConfig::SetLoop(bool const&)]+0x4f): undefined
> >
> > reference
> >
> > > to
> > > `CLAM::ErrAssertionFailed::ErrAssertionFailed(char const*, char
> > > const*, int)'
> > > /tmp/cc0JIYqu.o: In function
> > > `CLAM::MonoAudioFileReaderConfig::GetSourceFile() const':
> >
> > first_clam.cpp:(.text._ZNK4CLAM25MonoAudioFileReaderConfig13GetSourceFile
> >Ev
> >
> > >[CLAM::MonoAudioFileReaderConfig::GetSourceFile() const]+0x4f):
> > > undefined reference to
> > > `CLAM::ErrAssertionFailed::ErrAssertionFailed(char const*, char
> > > const*, int)'
> > > /tmp/cc0JIYqu.o: In function
> > > `CLAM::MonoAudioFileReaderConfig::GetSelectedChannel() const':
> >
> > first_clam.cpp:(.text._ZNK4CLAM25MonoAudioFileReaderConfig18GetSelectedCh
> >an
> >
> > >nelEv[CLAM::MonoAudioFileReaderConfig::GetSelectedChannel()
> > > const]+0x4f): undefined reference to
> > > `CLAM::ErrAssertionFailed::ErrAssertionFailed(char const*, char
> > > const*, int)'
> > > /tmp/cc0JIYqu.o: In function
> > > `CLAM::MonoAudioFileReaderConfig::GetLoop() const':
> >
> > first_clam.cpp:
(.text._ZNK4CLAM25MonoAudioFileReaderConfig7GetLoopEv[CLAM::
> > >MonoAudioFileReaderConfig::GetLoop() const]+0x4f): undefined reference
> > > to `CLAM::ErrAssertionFailed::ErrAssertionFailed(char const*, char
> > > const*, int)'
> >
> > /tmp/cc0JIYqu.o:first_clam.cpp:(.text._ZN4CLAM25MonoAudioFileReaderConfig
> >13
> >
> > >SetSourceFileERKNS_15AudioInFilenameE[CLAM::MonoAudioFileReaderConfig::S
> > >etSo urceFile(CLAM::AudioInFilename const&)]+0x4f): more undefined
> > > references
> >
> > to
> >
> > > `CLAM::ErrAssertionFailed::ErrAssertionFailed(char const*, char
> > > const*, int)' follow
> > > /tmp/cc0JIYqu.o: In function
> > > `CLAM::MonoAudioFileReaderConfig::LoadDynAttributes(CLAM::Storage&)':
> >
> > first_clam.cpp:(.text._ZN4CLAM25MonoAudioFileReaderConfig17LoadDynAttribu
> >te
> >
> > >sERNS_7StorageE[CLAM::MonoAudioFileReaderConfig::LoadDynAttributes(CLAM:
> > >:Sto rage&)]+0x18): undefined reference to
> > > `CLAM::DynamicType::UpdateData()'
> >
> > first_clam.cpp:(.text._ZN4CLAM25MonoAudioFileReaderConfig17LoadDynAttribu
> >te
> >
> > >sERNS_7StorageE[CLAM::MonoAudioFileReaderConfig::LoadDynAttributes(CLAM:
> > >:Sto rage&)]+0x3d): undefined reference to
> > > `CLAM::DynamicType::UpdateData()' /tmp/cc0JIYqu.o: In function
> > > `CLAM::AudioFileHeader::GetLength() const':
> >
> > first_clam.cpp:(.text._ZNK4CLAM15AudioFileHeader9GetLengthEv[CLAM::AudioF
> >il
> >
> > >eHeader::GetLength() const]+0x4f): undefined reference to
> > > `CLAM::ErrAssertionFailed::ErrAssertionFailed(char const*, char
> > > const*, int)'
> > > /tmp/cc0JIYqu.o: In function
> > > `CLAM::ErrAssertionFailed::~ErrAssertionFailed()':
> >
> > first_clam.cpp:(.text._ZN4CLAM18ErrAssertionFailedD1Ev[CLAM::ErrAssertion
> >Fa
> >
> > >iled::~ErrAssertionFailed()]+0x17): undefined reference to
> > > `CLAM::Err::~Err()'
> > > /tmp/cc0JIYqu.o: In function
> > > `CLAM::ErrAssertionFailed::~ErrAssertionFailed()':
> >
> > first_clam.cpp:(.text._ZN4CLAM18ErrAssertionFailedD0Ev[CLAM::ErrAssertion
> >Fa
> >
> > >iled::~ErrAssertionFailed()]+0x17): undefined reference to
> > > `CLAM::Err::~Err()'
> > > /tmp/cc0JIYqu.o: In function
> > > `CLAM::ProcessingConfig::ProcessingConfig(CLAM::ProcessingConfig
> > > const&, bool, bool)':
> >
> > first_clam.cpp:(.text._ZN4CLAM16ProcessingConfigC2ERKS0_bb[CLAM::Processi
> >ng
> >
> > >Config::ProcessingConfig(CLAM::ProcessingConfig const&, bool,
> >
> > bool)]+0x31):
> > > undefined reference to
> > > `CLAM::DynamicType::DynamicType(CLAM::DynamicType const&, bool, bool)'
> > > /tmp/cc0JIYqu.o: In function
> >
> > `CLAM::ProcessingConfig::~ProcessingConfig()':
> >
> > first_clam.cpp:(.text._ZN4CLAM16ProcessingConfigD0Ev[CLAM::ProcessingConf
> >ig
> >
> > >::~ProcessingConfig()]+0x17): undefined reference to
> > >
> > > `CLAM::DynamicType::~DynamicType()'
> > > /tmp/cc0JIYqu.o: In function
> >
> > `CLAM::ProcessingConfig::~ProcessingConfig()':
> >
> > first_clam.cpp:(.text._ZN4CLAM16ProcessingConfigD1Ev[CLAM::ProcessingConf
> >ig
> >
> > >::~ProcessingConfig()]+0x17): undefined reference to
> > >
> > > `CLAM::DynamicType::~DynamicType()'
> > > /tmp/cc0JIYqu.o: In function
> >
> > `CLAM::ProcessingConfig::~ProcessingConfig()':
> >
> > first_clam.cpp:(.text._ZN4CLAM16ProcessingConfigD2Ev[CLAM::ProcessingConf
> >ig
> >
> > >::~ProcessingConfig()]+0x17): undefined reference to
> > >
> > > `CLAM::DynamicType::~DynamicType()'
> > > /tmp/cc0JIYqu.o: In function
> > > `CLAM::ProcessingConfig::ProcessingConfig(int)':
> >
> > first_clam.cpp:(.text._ZN4CLAM16ProcessingConfigC2Ei[CLAM::ProcessingConf
> >ig
> >
> > >::ProcessingConfig(int)]+0x14): undefined reference to
> > >
> > > `CLAM::DynamicType::DynamicType(int)'
> > > /tmp/cc0JIYqu.o: In function
> > > `CLAM::MonoAudioFileReaderConfig::MonoAudioFileReaderConfig()':
> >
> > first_clam.cpp:(.text._ZN4CLAM25MonoAudioFileReaderConfigC1Ev[CLAM::MonoA
> >ud
> >
> > >ioFileReaderConfig::MonoAudioFileReaderConfig()]+0x36): undefined
> >
> > reference
> >
> > > to
> > > `CLAM::MonoAudioFileReaderConfig::DefaultInit()'
> > > /tmp/cc0JIYqu.o:(.rodata._ZTVN4CLAM7NetworkE[vtable for
> > > CLAM::Network]+0x10): undefined reference to
> > > `CLAM::FlattenedNetwork::StoreOn(CLAM::Storage&) const'
> > > /tmp/cc0JIYqu.o:(.rodata._ZTVN4CLAM7NetworkE[vtable for
> > > CLAM::Network]+0x14): undefined reference to
> > > `CLAM::FlattenedNetwork::LoadFrom(CLAM::Storage&)'
> > > /tmp/cc0JIYqu.o:(.rodata._ZTVN4CLAM7NetworkE[vtable for
> > > CLAM::Network]+0x24): undefined reference to
> > > `CLAM::FlattenedNetwork::Clear()'
> > > /tmp/cc0JIYqu.o:(.rodata._ZTVN4CLAM7NetworkE[vtable for
> > > CLAM::Network]+0x30): undefined reference to
> > > `CLAM::FlattenedNetwork::GetNetworkId(CLAM::Processing const*) const'
> > > /tmp/cc0JIYqu.o:(.rodata._ZTVN4CLAM7NetworkE[vtable for
> > > CLAM::Network]+0x34): undefined reference to
> > > `CLAM::FlattenedNetwork::BeginProcessings()'
> > > /tmp/cc0JIYqu.o:(.rodata._ZTVN4CLAM7NetworkE[vtable for
> > > CLAM::Network]+0x38): undefined reference to
> > > `CLAM::FlattenedNetwork::EndProcessings()'
> > > /tmp/cc0JIYqu.o:(.rodata._ZTVN4CLAM7NetworkE[vtable for
> > > CLAM::Network]+0x3c): undefined reference to
> > > `CLAM::FlattenedNetwork::BeginProcessings() const'
> > > /tmp/cc0JIYqu.o:(.rodata._ZTVN4CLAM7NetworkE[vtable for
> > > CLAM::Network]+0x40): undefined reference to
> > > `CLAM::FlattenedNetwork::EndProcessings() const'
> > > /tmp/cc0JIYqu.o:(.rodata._ZTVN4CLAM7NetworkE[vtable for
> > > CLAM::Network]+0x44): undefined reference to
> > > `CLAM::FlattenedNetwork::GetInPortsConnectedTo(std::basic_string<char,
> > > std::char_traits<char>, std::allocator<char> > const&) const'
> > > /tmp/cc0JIYqu.o:(.rodata._ZTVN4CLAM7NetworkE[vtable for
> > > CLAM::Network]+0x48): undefined reference to
> > > `CLAM::FlattenedNetwork::GetInControlsConnectedTo(std::basic_string<cha
> > >r, std::char_traits<char>, std::allocator<char> > const&) const'
> > > /tmp/cc0JIYqu.o:(.rodata._ZTVN4CLAM7NetworkE[vtable for
> > > CLAM::Network]+0x4c): undefined reference to
> > > `CLAM::FlattenedNetwork::GetInPortsConnectedTo(CLAM::OutPortBase&)
> > > const'
> > > /tmp/cc0JIYqu.o:(.rodata._ZTVN4CLAM7NetworkE[vtable for
> > > CLAM::Network]+0x50): undefined reference to
> > > `CLAM::FlattenedNetwork::GetConnectorIdentifier(std::basic_string<char,
> > > std::char_traits<char>, std::allocator<char> > const&) const'
> > > /tmp/cc0JIYqu.o:(.rodata._ZTVN4CLAM7NetworkE[vtable for
> > > CLAM::Network]+0x54): undefined reference to
> > > `CLAM::FlattenedNetwork::GetProcessingIdentifier(std::basic_string<char
> > >, std::char_traits<char>, std::allocator<char> > const&) const'
> > > /tmp/cc0JIYqu.o:(.rodata._ZTVN4CLAM7NetworkE[vtable for
> > > CLAM::Network]+0x58): undefined reference to
> > > `CLAM::FlattenedNetwork::GetInPortByCompleteName(std::basic_string<char
> > >, std::char_traits<char>, std::allocator<char> > const&) const'
> > > /tmp/cc0JIYqu.o:(.rodata._ZTVN4CLAM7NetworkE[vtable for
> > > CLAM::Network]+0x5c): undefined reference to
> > > `CLAM::FlattenedNetwork::GetOutPortByCompleteName(std::basic_string<cha
> > >r, std::char_traits<char>, std::allocator<char> > const&) const'
> > > /tmp/cc0JIYqu.o:(.rodata._ZTVN4CLAM7NetworkE[vtable for
> > > CLAM::Network]+0x60): undefined reference to
> >
> > `CLAM::FlattenedNetwork::GetInControlByCompleteName(std::basic_string<cha
> >r,
> >
> > > std::char_traits<char>, std::allocator<char> > const&) const'
> > > /tmp/cc0JIYqu.o:(.rodata._ZTVN4CLAM7NetworkE[vtable for
> > > CLAM::Network]+0x64): undefined reference to
> >
> > `CLAM::FlattenedNetwork::GetOutControlByCompleteName(std::basic_string<ch
> >ar
> >
> > >, std::char_traits<char>, std::allocator<char> > const&) const'
> > > /tmp/cc0JIYqu.o:(.rodata._ZTVN4CLAM7NetworkE[vtable for
> > > CLAM::Network]+0x68): undefined reference to
> > > `CLAM::FlattenedNetwork::ConnectPorts(std::basic_string<char,
> > > std::char_traits<char>, std::allocator<char> > const&,
> > > std::basic_string<char, std::char_traits<char>, std::allocator<char> >
> > > const&)'
> > > /tmp/cc0JIYqu.o:(.rodata._ZTVN4CLAM7NetworkE[vtable for
> > > CLAM::Network]+0x6c): undefined reference to
> > > `CLAM::FlattenedNetwork::ConnectControls(std::basic_string<char,
> > > std::char_traits<char>, std::allocator<char> > const&,
> > > std::basic_string<char, std::char_traits<char>, std::allocator<char> >
> > > const&)'
> > > /tmp/cc0JIYqu.o:(.rodata._ZTVN4CLAM7NetworkE[vtable for
> > > CLAM::Network]+0x70): undefined reference to
> > > `CLAM::FlattenedNetwork::DisconnectPorts(std::basic_string<char,
> > > std::char_traits<char>, std::allocator<char> > const&,
> > > std::basic_string<char, std::char_traits<char>, std::allocator<char> >
> > > const&)'
> > > /tmp/cc0JIYqu.o:(.rodata._ZTVN4CLAM7NetworkE[vtable for
> > > CLAM::Network]+0x74): undefined reference to
> > > `CLAM::FlattenedNetwork::DisconnectControls(std::basic_string<char,
> > > std::char_traits<char>, std::allocator<char> > const&,
> > > std::basic_string<char, std::char_traits<char>, std::allocator<char> >
> > > const&)'
> > > /tmp/cc0JIYqu.o:(.rodata._ZTVN4CLAM7NetworkE[vtable for
> > > CLAM::Network]+0x78): undefined reference to
> > > `CLAM::FlattenedNetwork::GetUnconnectedInPorts() const'
> > > /tmp/cc0JIYqu.o:(.rodata._ZTVN4CLAM7NetworkE[vtable for
> > > CLAM::Network]+0x7c): undefined reference to
> > > `CLAM::FlattenedNetwork::HasProcessing(std::basic_string<char,
> > > std::char_traits<char>, std::allocator<char> > const&) const'
> > > /tmp/cc0JIYqu.o:(.rodata._ZTVN4CLAM7NetworkE[vtable for
> > > CLAM::Network]+0x80): undefined reference to
> > > `CLAM::FlattenedNetwork::GetProcessing(std::basic_string<char,
> > > std::char_traits<char>, std::allocator<char> > const&) const'
> > > /tmp/cc0JIYqu.o:(.rodata._ZTVN4CLAM7NetworkE[vtable for
> > > CLAM::Network]+0x84): undefined reference to
> > > `CLAM::FlattenedNetwork::AddProcessing(std::basic_string<char,
> > > std::char_traits<char>, std::allocator<char> > const&,
> > > CLAM::Processing*)'
> > > /tmp/cc0JIYqu.o:(.rodata._ZTVN4CLAM7NetworkE[vtable for
> > > CLAM::Network]+0x88): undefined reference to
> > > `CLAM::FlattenedNetwork::AddProcessing(std::basic_string<char,
> > > std::char_traits<char>, std::allocator<char> > const&,
> > > std::basic_string<char, std::char_traits<char>, std::allocator<char> >
> > > const&)'
> > > /tmp/cc0JIYqu.o:(.rodata._ZTVN4CLAM7NetworkE[vtable for
> > > CLAM::Network]+0x8c): undefined reference to
> > > `CLAM::FlattenedNetwork::AddProcessing(std::basic_string<char,
> > > std::char_traits<char>, std::allocator<char> > const&)'
> > > /tmp/cc0JIYqu.o:(.rodata._ZTVN4CLAM7NetworkE[vtable for
> > > CLAM::Network]+0x90): undefined reference to
> > > `CLAM::FlattenedNetwork::GetUnusedName(std::basic_string<char,
> > > std::char_traits<char>, std::allocator<char> > const&) const'
> > > /tmp/cc0JIYqu.o:(.rodata._ZTVN4CLAM7NetworkE[vtable for
> > > CLAM::Network]+0x94): undefined reference to
> > > `CLAM::FlattenedNetwork::RenameProcessing(std::basic_string<char,
> > > std::char_traits<char>, std::allocator<char> > const&,
> > > std::basic_string<char, std::char_traits<char>, std::allocator<char> >
> > > const&)'
> > > /tmp/cc0JIYqu.o:(.rodata._ZTVN4CLAM7NetworkE[vtable for
> > > CLAM::Network]+0x98): undefined reference to
> > > `CLAM::FlattenedNetwork::RemoveProcessing(std::basic_string<char,
> > > std::char_traits<char>, std::allocator<char> > const&)'
> > > /tmp/cc0JIYqu.o:(.rodata._ZTVN4CLAM7NetworkE[vtable for
> > > CLAM::Network]+0x9c): undefined reference to
> > > `CLAM::FlattenedNetwork::IsReady() const'
> > > /tmp/cc0JIYqu.o:(.rodata._ZTVN4CLAM7NetworkE[vtable for
> > > CLAM::Network]+0xa0): undefined reference to
> > > `CLAM::FlattenedNetwork::IsEmpty() const'
> > > /tmp/cc0JIYqu.o:(.rodata._ZTVN4CLAM7NetworkE[vtable for
> > > CLAM::Network]+0xa4): undefined reference to
> > > `CLAM::FlattenedNetwork::HasMisconfiguredProcessings() const'
> > > /tmp/cc0JIYqu.o:(.rodata._ZTVN4CLAM7NetworkE[vtable for
> > > CLAM::Network]+0xa8): undefined reference to
> > > `CLAM::FlattenedNetwork::HasUnconnectedInPorts() const'
> > > /tmp/cc0JIYqu.o:(.rodata._ZTVN4CLAM7NetworkE[vtable for
> > > CLAM::Network]+0xac): undefined reference to
> > > `CLAM::FlattenedNetwork::HasSyncSource() const'
> > > /tmp/cc0JIYqu.o:(.rodata._ZTVN4CLAM7NetworkE[vtable for
> > > CLAM::Network]+0xb0): undefined reference to
> > > `CLAM::FlattenedNetwork::ConfigureProcessing(std::basic_string<char,
> > > std::char_traits<char>, std::allocator<char> > const&,
> > > CLAM::ProcessingConfig const&)'
> > > /tmp/cc0JIYqu.o:(.rodata._ZTVN4CLAM7NetworkE[vtable for
> > > CLAM::Network]+0xb4): undefined reference to
> > > `CLAM::FlattenedNetwork::ReconfigureAllProcessings()'
> > > /tmp/cc0JIYqu.o:(.rodata._ZTVN4CLAM7NetworkE[vtable for
> > > CLAM::Network]+0xb8): undefined reference to
> > > `CLAM::FlattenedNetwork::GetConfigurationErrors() const'
> > > /tmp/cc0JIYqu.o:(.rodata._ZTVN4CLAM7NetworkE[vtable for
> > > CLAM::Network]+0xbc): undefined reference to
> >
> > `CLAM::FlattenedNetwork::UpdateSelections(std::list<std::basic_string<cha
> >r,
> >
> > > std::char_traits<char>, std::allocator<char> >,
> > > std::allocator<std::basic_string<char, std::char_traits<char>,
> > > std::allocator<char> > > > const&)'
> > > /tmp/cc0JIYqu.o:(.rodata._ZTVN4CLAM7NetworkE[vtable for
> > > CLAM::Network]+0xc4): undefined reference to
> >
> > `CLAM::FlattenedNetwork::SetProcessingsGeometries(std::map<std::basic_str
> >in
> >
> > >g<char, std::char_traits<char>, std::allocator<char> >,
> > > CLAM::BaseNetwork::Geometry, std::less<std::basic_string<char,
> > > std::char_traits<char>, std::allocator<char> > >,
> > > std::allocator<std::pair<std::basic_string<char,
> > > std::char_traits<char>, std::allocator<char> > const,
> > > CLAM::BaseNetwork::Geometry> > > const&)'
> > > /tmp/cc0JIYqu.o:(.rodata._ZTVN4CLAM7NetworkE[vtable for
> > > CLAM::Network]+0xc8): undefined reference to
> > > `CLAM::FlattenedNetwork::GetAndClearGeometries()'
> > > /tmp/cc0JIYqu.o:(.rodata._ZTVN4CLAM7NetworkE[vtable for
> > > CLAM::Network]+0xcc): undefined reference to
> > > `CLAM::FlattenedNetwork::BackendBufferSize()'
> > > /tmp/cc0JIYqu.o:(.rodata._ZTVN4CLAM7NetworkE[vtable for
> > > CLAM::Network]+0xd0): undefined reference to
> > > `CLAM::FlattenedNetwork::BackendSampleRate()'
> > > /tmp/cc0JIYqu.o:(.rodata._ZTVN4CLAM7NetworkE[vtable for
> > > CLAM::Network]+0xd4): undefined reference to
> > > `CLAM::FlattenedNetwork::HasSelectionAndContains(std::basic_string<char
> > >, std::char_traits<char>, std::allocator<char> > const&) const'
> > > /tmp/cc0JIYqu.o:(.rodata._ZTIN4CLAM7NetworkE[typeinfo for
> > > CLAM::Network]+0x8): undefined reference to `typeinfo for
> > > CLAM::FlattenedNetwork'
> > > /tmp/cc0JIYqu.o:(.rodata._ZTVN4CLAM25MonoAudioFileReaderConfigE[vtable
> > > for CLAM::MonoAudioFileReaderConfig]+0x18): undefined reference to
> > > `CLAM::DynamicType::ShallowCopy() const'
> > > /tmp/cc0JIYqu.o:(.rodata._ZTVN4CLAM25MonoAudioFileReaderConfigE[vtable
> > > for CLAM::MonoAudioFileReaderConfig]+0x1c): undefined reference to
> > > `CLAM::DynamicType::DeepCopy() const'
> > > /tmp/cc0JIYqu.o:(.rodata._ZTVN4CLAM25MonoAudioFileReaderConfigE[vtable
> > > for CLAM::MonoAudioFileReaderConfig]+0x28): undefined reference to
> > > `CLAM::DynamicType::InformAttr_(unsigned int, char const*, unsigned
> > > int, char const*, bool, void* (*)(void*), void* (*)(void*, void*),
> > > void (*)(void*))'
> > > /tmp/cc0JIYqu.o:(.rodata._ZTIN4CLAM16ProcessingConfigE[typeinfo for
> > > CLAM::ProcessingConfig]+0x8): undefined reference to `typeinfo for
> > > CLAM::DynamicType'
> > > /tmp/cc0JIYqu.o:(.rodata._ZTIN4CLAM18ErrAssertionFailedE[typeinfo for
> > > CLAM::ErrAssertionFailed]+0x8): undefined reference to `typeinfo for
> > > CLAM::Err'
> > > /tmp/cc0JIYqu.o:(.rodata._ZTVN4CLAM16ProcessingConfigE[vtable for
> > > CLAM::ProcessingConfig]+0x18): undefined reference to
> > > `CLAM::DynamicType::ShallowCopy() const'
> > > /tmp/cc0JIYqu.o:(.rodata._ZTVN4CLAM16ProcessingConfigE[vtable for
> > > CLAM::ProcessingConfig]+0x1c): undefined reference to
> > > `CLAM::DynamicType::DeepCopy() const'
> > > /tmp/cc0JIYqu.o:(.rodata._ZTVN4CLAM16ProcessingConfigE[vtable for
> > > CLAM::ProcessingConfig]+0x28): undefined reference to
> > > `CLAM::DynamicType::InformAttr_(unsigned int, char const*, unsigned
> > > int, char const*, bool, void* (*)(void*), void* (*)(void*, void*),
> > > void (*)(void*))'
> > > collect2: ld returned 1 exit status
> > > *
> > > What should i do this time. I am totally lost.
> > >
> > > Can you kindly lend me a hand?
> > >
> > > Great Thanks!
> > >
> > > Best wishes!*
Stephane THOMAS | 15 Dec 2008 20:52
Favicon

Re: What's wrong with my code

Hi,

On Sun, 14 Dec 2008 19:04:50 +0100
David García Garzón <dgarcia@...> wrote:

> > Warning: 2 sinks were not fed, so could not send audio to the callback.
> 
> This messages is also painless provided that it is only shown a couple of 
> times. Normally it means that you have to execute the network a couple of 
> times to produce the first output. But if the message displays all the time, 
> then it could be a problem of unfeeded input which seems not likely.

Yes the message is repeated all the time.

> Notice that the connection will fail silently when the file is mono. Check 
> CanConnectPorts before actually connecting them or use CLAM::ConnectPorts 
> instead of CLAM::Network::ConnectPorts so you can get a nice exception. Also 
> the configuration might fail. Whatever the case, the Network has several 
> methods to do the diagnose when it can be played or not.

Yes. I know that. Currently I'm doing all my test with the same audio (wav) file that I know to be a stereo one.

> If the network is sounding but badly, then please, check whether other jack 
> applications work and if they do, check whether provided CLAM examples work 
> with jack (NetworkEditor and the like).

Other audio apps (including NetworkEditor) are running fine with JACK. I wasn't able to build "the
like"... (Turnaround, etc...)

> Sorry for not being that helpful.

No problem, I'm happy to get an answer to my newbie questions...

> The memory management issue: notice that the network takes ownership of the 
> added processings so you cannot make the processings automatic members of your 
> objects. Anyway that should not cause the problem you were reporting.

I'm not sure to understand. What do you call an "automatic member" ?

Many thanks for your help. I'll try to rewrite my example using the portaudio backend so I can tell if the
issue is related to the JACK backend.

Stef

> On Dimecres 10 Desembre 2008 18:54:07 Stephane THOMAS wrote:
> > Hi,
> >
> > Here is another program I wrote from scratch (the goal is to get a command
> > line program which plays a stereo file through JACK)
> >
> > It produces sound, but once again, I have a repeated error message and the
> > sound is awful :
> >
> > Warning: 2 sinks were not fed, so could not send audio to the callback.
> >
> > The program is called cjap (for CLAM JACK Audio Player), here is the code :
> >
> > -----------cjap.h--------------
> > #include <QObject>
> > #include "CLAM/Network.hxx"
> > #include "CLAM/AudioSink.hxx"
> > #include "CLAM/MultiChannelAudioFileReader.hxx"
> > #include "CLAM/JACKNetworkPlayer.hxx"
> >
> > using namespace std;
> > using namespace CLAM;
> >
> >
> > class JackAudioFilePlayer : QObject
> > {
> > Q_OBJECT
> >  Network network;
> >  AudioSink sinkL;
> >  AudioSink sinkR;
> >  MultiChannelAudioFileReader reader;
> >  MultiChannelAudioFileReaderConfig config;
> >  JACKNetworkPlayer player;
> >
> > public:
> > JackAudioFilePlayer ();
> > void loadfile (string filename);
> >
> > public slots:
> > void play ();
> > void stop ();
> > };
> > ---------------------------------
> >
> > -------------cjap.cpp------------------
> > #include "cjap.h"
> >
> > JackAudioFilePlayer::JackAudioFilePlayer ()
> > {
> >  network.AddProcessing("left",&sinkL);
> >  network.AddProcessing("right",&sinkR);
> >  network.AddProcessing("reader",&reader);
> > }
> >
> > void JackAudioFilePlayer::loadfile (string filename)
> > {
> >  config.SetSourceFile(filename);
> >  reader.Configure (config);
> >  network.ConnectPorts("reader.Channel #0","left.AudioIn");
> >  network.ConnectPorts("reader.Channel #1","right.AudioIn");
> >  network.SetPlayer (&player);
> > }
> >
> > void JackAudioFilePlayer::play ()
> > {
> >  network.Start();
> > }
> >
> > void JackAudioFilePlayer::stop ()
> > {
> >  network.Stop();
> > }
> > ------------------------------------------
> > ----------main.cpp-----------------------
> > #include <iostream>
> > #include <QCoreApplication>
> > #include "cjap.h"
> >
> > using namespace std;
> >
> >
> > int main (int argc, char** argv)
> > {
> >  QCoreApplication app (argc,argv);
> >
> >  if (argc != 2)
> >   {
> >     cout << "Usage: cjap <filename>" << endl;
> >     return 0;
> >   }
> >  else
> >   {
> >     JackAudioFilePlayer* jafp = new JackAudioFilePlayer;
> >     jafp->loadfile(argv[1]);
> >     jafp->play();
> >   }
> >
> >
> >  return app.exec();
> > }
> > ________________________________________
> >
> > Stef
> >
> > _______________________________________________
> > CLAM mailing list
> > CLAM@...
> > http://clam.iua.upf.edu
> 

Gmane