How to build CLAM source via scons

Asked by Theresa Chen

Good day. I saw that the CLAM packages are currently being maintained for Queztal, thought to ask how you were able to get past the build issue. I've downloaded CLAM 1.4.0 from their project website, and have been trying to build it using their scons script. I used the SConfigure plugin for Eclipse to try and import the project in order to have a better indexed reference for my own pet project, which is using CLAM dev libraries. Here is the error output I'm seeing:

================================== SNIP ==================================
scons: *** [scons/libs/core/src/AudioOutPort.os] Error 1
== Compiling shared scons/libs/core/src/ControlMultiplier.cxx
In file included from scons/libs/core/include/CLAM/OutPortPublisher.hxx:25:0,
                 from scons/libs/core/include/CLAM/AudioOutPortPublisher.hxx:25,
                 from scons/libs/core/src/AudioOutPortPublisher.cxx:22:
scons/libs/core/include/CLAM/OutPort.hxx: In instantiation of ‘bool CLAM::OutPort<Token>::IsConnectableTo(CLAM::InPortBase&) [with Token = float]’:
scons/libs/core/include/CLAM/OutPortPublisher.hxx:111:49: required from ‘bool CLAM::OutPortPublisher<Token>::IsConnectableTo(CLAM::InPortBase&) [with Token = float]’
scons/libs/core/src/AudioOutPortPublisher.cxx:38:1: required from here
scons/libs/core/include/CLAM/OutPort.hxx:287:45: error: ‘SameType’ was not declared in this scope, and no declarations were found by argument-dependent lookup at the point of instantiation [-fpermissive]
In file included from scons/libs/core/include/CLAM/XMLIterableAdapter.hxx:32:0,
                 from scons/libs/core/include/CLAM/DynamicType.hxx:29,
                 from scons/libs/core/include/CLAM/Audio.hxx:34,
                 from scons/libs/core/include/CLAM/AudioOutPortPublisher.hxx:26,
                 from scons/libs/core/src/AudioOutPortPublisher.cxx:22:
scons/libs/core/include/CLAM/TypeInfo.hxx:30:7: note: ‘bool CLAM::SameType(const std::type_info&, const std::type_info&)’ declared here, later in the translation unit
scons: *** [scons/libs/core/src/AudioOutPortPublisher.os] Error 1
================================== SNIP ==================================

I couldn't see anything obvious in the code itself as to why there is a scope issue. I'm not too familiar with scons (this is the first time I've used it actually) and I am aware that the last stable release was 2010. If you can give some guidance on how you managed to get CLAM libraries to build, I'd really appreciate it.

Cheers, Theresa

Question information

Language:
English Edit question
Status:
Solved
For:
Ubuntu clam Edit question
Assignee:
No assignee Edit question
Solved by:
Mark Rijckenberg
Solved:
Last query:
Last reply:
Revision history for this message
Best Mark Rijckenberg (markrijckenberg) said :
#1

Please read this:

http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=667136

Apparently a bug in clam 1.4.0-5 which is fixed in clam 1.4.0-5.1

Why not simply install the binary package using these Terminal commands?

sudo apt-get update

sudo apt-get install clam

sudo apt-get install libclam-dev

sudo apt-get install libclam1.4

Revision history for this message
Theresa Chen (chenybing) said :
#2

Hey Mark, thanks for the quick response. I did install the packages, which is why I was curious as to how the developers were able to get the original code compiled and working. The current project I'm working on builds against the libraries provided by the packages and works every well.

The link you provided helped! Thank you very much. :)

This is more for me learning how to work with scons. Thanks again for your help!

Revision history for this message
Theresa Chen (chenybing) said :
#3

Thanks Mark Rijckenberg, that solved my question.

Revision history for this message
ayla (aylaemily) said :
#4

Hello Imprint, gratitude for the fast reaction. I introduced the bundles, which is the reason I was interested with respect to how the designers had the option to get the first code assembled and working. The ongoing undertaking I'm chipping away at works against the libraries given by the bundles and works each well. See more

https://atozanimalszoo.com/