Dear experts,
To develop a spiking neuronal network model of the thalamus, I want to
adapt the Izhikevich neuron model to account for the behavior of
thalamocortical neurons. Before I do this, I wanted to test if it was
possible to install an extension module in my setup. Therefore I followed
these steps:
https://nest-extension-module.readthedocs.io/en/latest/extension_modules.ht…
to install this example nest-extension-module:
https://github.com/nest/nest-extension-module .
I am working with the tvb-multiscale docker container (
https://github.com/the-virtual-brain/tvb-multiscale/tree/master/tvb_multisc…)
in VScode on windows. I've been working with this succesfully and easily
managed to make thalamus models with the available aeIF neuron model of
NEST. I'm using a python 3.7.3 interpreter and NEST 3.
I've succesfully "made" the module with:
docker@84fabd16af99:~/mmb$ cmake
-Dwith-nest=/home/docker/env/neurosci/nest_build/bin/nest-config
../nest-extension-module-master
It gives me the message:
You can now build and install 'mymodule'
using
make
make install
The library file libmymodule.so will be installed to
/home/docker/env/neurosci/nest_build/lib/nest/
Help files will be installed to
/home/docker/env/neurosci/nest_build/share/doc/nest
The module can be loaded into NEST using
nest.Install('mymodule') (in PyNEST)
(mymodule) Install (in SLI
-- Configuring done
-- Generating done
-- Build files have been written to: /home/docker/mmb
However, when I try to "make". I get a bunch of errors that I have added at
the end of this email. My colleague tried to install exactly the same
module in exactly the same way on his linux machine and it worked
perfectly. But somehow for me, I get these weird errors that I haven't
been able to resolve so far. Does anyone have an idea what the problem
might be? It would be greatly appreciated. If you need any additional
information please let me know.
Thank you in advance and have a nice day!
Kind regards,
Nina Doorn
Error message:
docker@84fabd16af99:~/mmb$ make
Scanning dependencies of target mymodule_module
[ 10%] Building CXX object src/CMakeFiles/mymodule_module.dir/mymodule.cpp.o
In file included from
/home/docker/nest-extension-module-master/src/mymodule.cpp:30:
/home/docker/nest-extension-module-master/src/pif_psc_alpha.h:92:1: error:
expected class-name before ‘{’ token
{
^
/home/docker/nest-extension-module-master/src/pif_psc_alpha.h:115:21:
error: type ‘nest::Node’ is not a base type for type ‘mynest::pif_psc_alpha’
using nest::Node::handle;
^~~~~~
/home/docker/nest-extension-module-master/src/pif_psc_alpha.h:116:21:
error: type ‘nest::Node’ is not a base type for type ‘mynest::pif_psc_alpha’
using nest::Node::handles_test_event;
^~~~~~~~~~~~~~~~~~
/home/docker/nest-extension-module-master/src/pif_psc_alpha.h:121:14:
error: ‘nest::port mynest::pif_psc_alpha::send_test_event(nest::Node&,
nest::port, nest::synindex, bool)’ marked ‘override’, but does not override
nest::port send_test_event( nest::Node&, nest::port, nest::synindex,
bool ) override;
^~~~~~~~~~~~~~~
/home/docker/nest-extension-module-master/src/pif_psc_alpha.h:129:8: error:
‘void mynest::pif_psc_alpha::handle(nest::SpikeEvent&)’ marked ‘override’,
but does not override
void handle( nest::SpikeEvent& ) override; //! accept spikes
^~~~~~
/home/docker/nest-extension-module-master/src/pif_psc_alpha.h:130:8: error:
‘void mynest::pif_psc_alpha::handle(nest::CurrentEvent&)’ marked
‘override’, but does not override
void handle( nest::CurrentEvent& ) override; //! accept input
current
^~~~~~
/home/docker/nest-extension-module-master/src/pif_psc_alpha.h:131:8: error:
‘void mynest::pif_psc_alpha::handle(nest::DataLoggingRequest&)’ marked
‘override’, but does not override
void handle( nest::DataLoggingRequest& ) override; //! allow recording
with multimeter
^~~~~~
/home/docker/nest-extension-module-master/src/pif_psc_alpha.h:133:14:
error: ‘nest::port
mynest::pif_psc_alpha::handles_test_event(nest::SpikeEvent&, nest::port)’
marked ‘override’, but does not override
nest::port handles_test_event( nest::SpikeEvent&, nest::port ) override;
^~~~~~~~~~~~~~~~~~
/home/docker/nest-extension-module-master/src/pif_psc_alpha.h:134:14:
error: ‘nest::port
mynest::pif_psc_alpha::handles_test_event(nest::CurrentEvent&, nest::port)’
marked ‘override’, but does not override
nest::port handles_test_event( nest::CurrentEvent&, nest::port )
override;
^~~~~~~~~~~~~~~~~~
/home/docker/nest-extension-module-master/src/pif_psc_alpha.h:135:14:
error: ‘nest::port
mynest::pif_psc_alpha::handles_test_event(nest::DataLoggingRequest&,
nest::port)’ marked ‘override’, but does not override
nest::port handles_test_event( nest::DataLoggingRequest&, nest::port )
override;
^~~~~~~~~~~~~~~~~~
/home/docker/nest-extension-module-master/src/pif_psc_alpha.h:138:8: error:
‘void mynest::pif_psc_alpha::get_status(DictionaryDatum&) const’ marked
‘override’, but does not override
void get_status( DictionaryDatum& ) const override;
^~~~~~~~~~
/home/docker/nest-extension-module-master/src/pif_psc_alpha.h:139:8: error:
‘void mynest::pif_psc_alpha::set_status(const DictionaryDatum&)’ marked
‘override’, but does not override
void set_status( const DictionaryDatum& ) override;
^~~~~~~~~~
/home/docker/nest-extension-module-master/src/pif_psc_alpha.h:143:8: error:
‘void mynest::pif_psc_alpha::init_buffers_()’ marked ‘override’, but does
not override
void init_buffers_() override;
^~~~~~~~~~~~~
/home/docker/nest-extension-module-master/src/pif_psc_alpha.h:146:8: error:
‘void mynest::pif_psc_alpha::calibrate()’ marked ‘override’, but does not
override
void calibrate() override;
^~~~~~~~~
/home/docker/nest-extension-module-master/src/pif_psc_alpha.h:149:8: error:
‘void mynest::pif_psc_alpha::update(const nest::Time&, long int, long int)’
marked ‘override’, but does not override
void update( nest::Time const&, const long, const long ) override;
^~~~~~
/home/docker/nest-extension-module-master/src/pif_psc_alpha.h: In member
function ‘nest::port mynest::pif_psc_alpha::send_test_event(nest::Node&,
nest::port, nest::synindex, bool)’:
/home/docker/nest-extension-module-master/src/pif_psc_alpha.h:324:23:
error: no matching function for call to
‘nest::SpikeEvent::set_sender(mynest::pif_psc_alpha&)’
e.set_sender( *this );
^
In file included from
/home/docker/env/neurosci/nest_build/include/nest/connector_model.h:34,
from
/home/docker/env/neurosci/nest_build/include/nest/common_synapse_properties.h:27,
from
/home/docker/env/neurosci/nest_build/include/nest/connection.h:27,
from
/home/docker/nest-extension-module-master/src/drop_odd_spike_connection.h:27,
from
/home/docker/nest-extension-module-master/src/mymodule.cpp:29:
/home/docker/env/neurosci/nest_build/include/nest/event.h:1288:1: note:
candidate: ‘void nest::Event::set_sender(nest::Node&)’
Event::set_sender( Node& s )
^~~~~
/home/docker/env/neurosci/nest_build/include/nest/event.h:1288:1: note:
no known conversion for argument 1 from ‘mynest::pif_psc_alpha’ to
‘nest::Node&’
In file included from
/home/docker/nest-extension-module-master/src/mymodule.cpp:30:
/home/docker/nest-extension-module-master/src/pif_psc_alpha.h: In member
function ‘nest::port
mynest::pif_psc_alpha::handles_test_event(nest::SpikeEvent&, nest::port)’:
/home/docker/nest-extension-module-master/src/pif_psc_alpha.h:337:53:
error: ‘get_name’ was not declared in this scope
throw nest::UnknownReceptorType( receptor_type, get_name() );
^~~~~~~~
/home/docker/nest-extension-module-master/src/pif_psc_alpha.h:337:53: note:
suggested alternative: ‘get_V_m_’
throw nest::UnknownReceptorType( receptor_type, get_name() );
^~~~~~~~
get_V_m_
/home/docker/nest-extension-module-master/src/pif_psc_alpha.h: In member
function ‘nest::port
mynest::pif_psc_alpha::handles_test_event(nest::CurrentEvent&, nest::port)’:
/home/docker/nest-extension-module-master/src/pif_psc_alpha.h:351:53:
error: ‘get_name’ was not declared in this scope
throw nest::UnknownReceptorType( receptor_type, get_name() );
^~~~~~~~
/home/docker/nest-extension-module-master/src/pif_psc_alpha.h:351:53: note:
suggested alternative: ‘get_V_m_’
throw nest::UnknownReceptorType( receptor_type, get_name() );
^~~~~~~~
get_V_m_
/home/docker/nest-extension-module-master/src/pif_psc_alpha.h: In member
function ‘nest::port
mynest::pif_psc_alpha::handles_test_event(nest::DataLoggingRequest&,
nest::port)’:
/home/docker/nest-extension-module-master/src/pif_psc_alpha.h:366:53:
error: ‘get_name’ was not declared in this scope
throw nest::UnknownReceptorType( receptor_type, get_name() );
^~~~~~~~
/home/docker/nest-extension-module-master/src/pif_psc_alpha.h:366:53: note:
suggested alternative: ‘get_V_m_’
throw nest::UnknownReceptorType( receptor_type, get_name() );
^~~~~~~~
get_V_m_
/home/docker/nest-extension-module-master/src/pif_psc_alpha.h: In member
function ‘void mynest::pif_psc_alpha::get_status(DictionaryDatum&) const’:
/home/docker/nest-extension-module-master/src/pif_psc_alpha.h:380:3: error:
‘ArchivingNode’ has not been declared
ArchivingNode::get_status( d );
^~~~~~~~~~~~~
/home/docker/nest-extension-module-master/src/pif_psc_alpha.h: In member
function ‘void mynest::pif_psc_alpha::set_status(const DictionaryDatum&)’:
/home/docker/nest-extension-module-master/src/pif_psc_alpha.h:397:3: error:
‘ArchivingNode’ has not been declared
ArchivingNode::set_status( d );
^~~~~~~~~~~~~
In file included from
/home/docker/env/neurosci/nest_build/include/nest/connection_manager_impl.h:33,
from
/home/docker/nest-extension-module-master/src/mymodule.cpp:38:
/home/docker/env/neurosci/nest_build/include/nest/conn_builder_factory.h:
In instantiation of ‘nest::ConnBuilder*
nest::ConnBuilderFactory<ConnBuilderType>::create(nest::NodeCollectionPTR,
nest::NodeCollectionPTR, const DictionaryDatum&, const DictionaryDatum&)
const [with ConnBuilderType = mynest::StepPatternBuilder;
nest::NodeCollectionPTR = std::shared_ptr<nest::NodeCollection>;
DictionaryDatum = lockPTRDatum<Dictionary, (&
SLIInterpreter::Dictionarytype)>]’:
/home/docker/env/neurosci/nest_build/include/nest/conn_builder_factory.h:67:3:
required from here
/home/docker/env/neurosci/nest_build/include/nest/conn_builder_factory.h:72:12:
error: no matching function for call to
‘mynest::StepPatternBuilder::StepPatternBuilder(nest::NodeCollectionPTR&,
nest::NodeCollectionPTR&, const DictionaryDatum&, const DictionaryDatum&)’
return new ConnBuilderType( sources, targets, conn_spec, syn_spec );
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from
/home/docker/nest-extension-module-master/src/mymodule.cpp:31:
/home/docker/nest-extension-module-master/src/step_pattern_builder.h:35:3:
note: candidate:
‘mynest::StepPatternBuilder::StepPatternBuilder(nest::NodeCollectionPTR,
nest::NodeCollectionPTR, const DictionaryDatum&, const
std::vector<lockPTRDatum<Dictionary, (& SLIInterpreter::Dictionarytype)>
&)’
StepPatternBuilder( const
nest::NodeCollectionPTR sources,
^~~~~~~~~~~~~~~~~~
/home/docker/nest-extension-module-master/src/step_pattern_builder.h:35:3:
note: no known conversion for argument 4 from ‘const DictionaryDatum’
{aka ‘const lockPTRDatum<Dictionary, (& SLIInterpreter::Dictionarytype)>’}
to ‘const std::vector<lockPTRDatum<Dictionary, (&
SLIInterpreter::Dictionarytype)> >&’
/home/docker/nest-extension-module-master/src/step_pattern_builder.h:32:7:
note: candidate: ‘mynest::StepPatternBuilder::StepPatternBuilder(const
mynest::StepPatternBuilder&)’
class StepPatternBuilder : public nest::ConnBuilder
^~~~~~~~~~~~~~~~~~
/home/docker/nest-extension-module-master/src/step_pattern_builder.h:32:7:
note: candidate expects 1 argument, 4 provided
/home/docker/nest-extension-module-master/src/step_pattern_builder.h:32:7:
note: candidate:
‘mynest::StepPatternBuilder::StepPatternBuilder(mynest::StepPatternBuilder&&)’
/home/docker/nest-extension-module-master/src/step_pattern_builder.h:32:7:
note: candidate expects 1 argument, 4 provided
In file included from
/home/docker/env/neurosci/nest_build/include/nest/model_manager.h:31,
from
/home/docker/env/neurosci/nest_build/include/nest/kernel_manager.h:31,
from
/home/docker/env/neurosci/nest_build/include/nest/connector_base_impl.h:26,
from
/home/docker/env/neurosci/nest_build/include/nest/connection.h:29,
from
/home/docker/nest-extension-module-master/src/drop_odd_spike_connection.h:27,
from
/home/docker/nest-extension-module-master/src/mymodule.cpp:29:
/home/docker/env/neurosci/nest_build/include/nest/genericmodel.h: In
instantiation of ‘bool nest::GenericModel<ElementT>::has_proxies() [with
ElementT = mynest::pif_psc_alpha]’:
/home/docker/env/neurosci/nest_build/include/nest/genericmodel.h:174:1:
required from here
/home/docker/env/neurosci/nest_build/include/nest/genericmodel.h:176:17:
error: ‘class mynest::pif_psc_alpha’ has no member named ‘has_proxies’
return proto_.has_proxies();
~~~~~~~^~~~~~~~~~~
/home/docker/env/neurosci/nest_build/include/nest/genericmodel.h: In
instantiation of ‘bool nest::GenericModel<ElementT>::one_node_per_process()
[with ElementT = mynest::pif_psc_alpha]’:
/home/docker/env/neurosci/nest_build/include/nest/genericmodel.h:181:1:
required from here
/home/docker/env/neurosci/nest_build/include/nest/genericmodel.h:183:17:
error: ‘class mynest::pif_psc_alpha’ has no member named
‘one_node_per_process’
return proto_.one_node_per_process();
~~~~~~~^~~~~~~~~~~~~~~~~~~~
/home/docker/env/neurosci/nest_build/include/nest/genericmodel.h: In
instantiation of ‘bool nest::GenericModel<ElementT>::is_off_grid() [with
ElementT = mynest::pif_psc_alpha]’:
/home/docker/env/neurosci/nest_build/include/nest/genericmodel.h:188:1:
required from here
/home/docker/env/neurosci/nest_build/include/nest/genericmodel.h:190:17:
error: ‘class mynest::pif_psc_alpha’ has no member named ‘is_off_grid’
return proto_.is_off_grid();
~~~~~~~^~~~~~~~~~~
/home/docker/env/neurosci/nest_build/include/nest/genericmodel.h: In
instantiation of ‘void nest::GenericModel<ElementT>::calibrate_time(const
nest::TimeConverter&) [with ElementT = mynest::pif_psc_alpha]’:
/home/docker/env/neurosci/nest_build/include/nest/genericmodel.h:195:1:
required from here
/home/docker/env/neurosci/nest_build/include/nest/genericmodel.h:197:10:
error: ‘class mynest::pif_psc_alpha’ has no member named ‘calibrate_time’;
did you mean ‘calibrate’?
proto_.calibrate_time( tc );
~~~~~~~^~~~~~~~~~~~~~
calibrate
/home/docker/env/neurosci/nest_build/include/nest/genericmodel.h: In
instantiation of ‘void
nest::GenericModel<ElementT>::sends_secondary_event(nest::GapJunctionEvent&)
[with ElementT = mynest::pif_psc_alpha]’:
/home/docker/env/neurosci/nest_build/include/nest/genericmodel.h:209:1:
required from here
/home/docker/env/neurosci/nest_build/include/nest/genericmodel.h:211:17:
error: ‘class mynest::pif_psc_alpha’ has no member named
‘sends_secondary_event’; did you mean ‘send_test_event’?
return proto_.sends_secondary_event( ge );
~~~~~~~^~~~~~~~~~~~~~~~~~~~~
send_test_event
/home/docker/env/neurosci/nest_build/include/nest/genericmodel.h:211:43:
error: return-statement with a value, in function returning ‘void’
[-fpermissive]
return proto_.sends_secondary_event( ge );
^
/home/docker/env/neurosci/nest_build/include/nest/genericmodel.h: In
instantiation of ‘void
nest::GenericModel<ElementT>::sends_secondary_event(nest::InstantaneousRateConnectionEvent&)
[with ElementT = mynest::pif_psc_alpha]’:
/home/docker/env/neurosci/nest_build/include/nest/genericmodel.h:216:1:
required from here
/home/docker/env/neurosci/nest_build/include/nest/genericmodel.h:218:17:
error: ‘class mynest::pif_psc_alpha’ has no member named
‘sends_secondary_event’; did you mean ‘send_test_event’?
return proto_.sends_secondary_event( re );
~~~~~~~^~~~~~~~~~~~~~~~~~~~~
send_test_event
/home/docker/env/neurosci/nest_build/include/nest/genericmodel.h:218:43:
error: return-statement with a value, in function returning ‘void’
[-fpermissive]
return proto_.sends_secondary_event( re );
^
/home/docker/env/neurosci/nest_build/include/nest/genericmodel.h: In
instantiation of ‘void
nest::GenericModel<ElementT>::sends_secondary_event(nest::DiffusionConnectionEvent&)
[with ElementT = mynest::pif_psc_alpha]’:
/home/docker/env/neurosci/nest_build/include/nest/genericmodel.h:223:1:
required from here
/home/docker/env/neurosci/nest_build/include/nest/genericmodel.h:225:17:
error: ‘class mynest::pif_psc_alpha’ has no member named
‘sends_secondary_event’; did you mean ‘send_test_event’?
return proto_.sends_secondary_event( de );
~~~~~~~^~~~~~~~~~~~~~~~~~~~~
send_test_event
/home/docker/env/neurosci/nest_build/include/nest/genericmodel.h:225:43:
error: return-statement with a value, in function returning ‘void’
[-fpermissive]
return proto_.sends_secondary_event( de );
^
/home/docker/env/neurosci/nest_build/include/nest/genericmodel.h: In
instantiation of ‘void
nest::GenericModel<ElementT>::sends_secondary_event(nest::DelayedRateConnectionEvent&)
[with ElementT = mynest::pif_psc_alpha]’:
/home/docker/env/neurosci/nest_build/include/nest/genericmodel.h:230:1:
required from here
/home/docker/env/neurosci/nest_build/include/nest/genericmodel.h:232:17:
error: ‘class mynest::pif_psc_alpha’ has no member named
‘sends_secondary_event’; did you mean ‘send_test_event’?
return proto_.sends_secondary_event( re );
~~~~~~~^~~~~~~~~~~~~~~~~~~~~
send_test_event
/home/docker/env/neurosci/nest_build/include/nest/genericmodel.h:232:43:
error: return-statement with a value, in function returning ‘void’
[-fpermissive]
return proto_.sends_secondary_event( re );
^
/home/docker/env/neurosci/nest_build/include/nest/genericmodel.h: In
instantiation of ‘nest::SignalType
nest::GenericModel<ElementT>::sends_signal() const [with ElementT =
mynest::pif_psc_alpha]’:
/home/docker/env/neurosci/nest_build/include/nest/genericmodel.h:237:1:
required from here
/home/docker/env/neurosci/nest_build/include/nest/genericmodel.h:239:17:
error: ‘const class mynest::pif_psc_alpha’ has no member named
‘sends_signal’
return proto_.sends_signal();
~~~~~~~^~~~~~~~~~~~
/home/docker/env/neurosci/nest_build/include/nest/genericmodel.h: In
instantiation of ‘const nest::Node&
nest::GenericModel<ElementT>::get_prototype() const [with ElementT =
mynest::pif_psc_alpha]’:
/home/docker/env/neurosci/nest_build/include/nest/genericmodel.h:267:1:
required from here
/home/docker/env/neurosci/nest_build/include/nest/genericmodel.h:269:10:
error: invalid initialization of reference of type ‘const nest::Node&’ from
expression of type ‘const mynest::pif_psc_alpha’
return proto_;
^~~~~~
/home/docker/env/neurosci/nest_build/include/nest/genericmodel.h: In
instantiation of ‘void nest::GenericModel<ElementT>::set_model_id(int)
[with ElementT = mynest::pif_psc_alpha]’:
/home/docker/env/neurosci/nest_build/include/nest/genericmodel.h:274:1:
required from here
/home/docker/env/neurosci/nest_build/include/nest/genericmodel.h:276:10:
error: ‘class mynest::pif_psc_alpha’ has no member named ‘set_model_id’
proto_.set_model_id( i );
~~~~~~~^~~~~~~~~~~~
/home/docker/env/neurosci/nest_build/include/nest/genericmodel.h: In
instantiation of ‘int nest::GenericModel<ElementT>::get_model_id() [with
ElementT = mynest::pif_psc_alpha]’:
/home/docker/env/neurosci/nest_build/include/nest/genericmodel.h:281:1:
required from here
/home/docker/env/neurosci/nest_build/include/nest/genericmodel.h:283:17:
error: ‘class mynest::pif_psc_alpha’ has no member named ‘get_model_id’
return proto_.get_model_id();
~~~~~~~^~~~~~~~~~~~
/home/docker/env/neurosci/nest_build/include/nest/genericmodel.h: In
instantiation of ‘DictionaryDatum
nest::GenericModel<ElementT>::get_status_() [with ElementT =
mynest::pif_psc_alpha; DictionaryDatum = lockPTRDatum<Dictionary, (&
SLIInterpreter::Dictionarytype)>]’:
/home/docker/env/neurosci/nest_build/include/nest/genericmodel.h:251:1:
required from here
/home/docker/env/neurosci/nest_build/include/nest/genericmodel.h:253:30:
error: ‘class mynest::pif_psc_alpha’ has no member named ‘get_status_base’;
did you mean ‘get_status’?
DictionaryDatum d = proto_.get_status_base();
~~~~~~~^~~~~~~~~~~~~~~
get_status
/home/docker/env/neurosci/nest_build/include/nest/genericmodel.h: In
instantiation of ‘nest::Node*
nest::GenericModel<ElementT>::allocate_(void*) [with ElementT =
mynest::pif_psc_alpha]’:
/home/docker/env/neurosci/nest_build/include/nest/genericmodel.h:159:1:
required from here
/home/docker/env/neurosci/nest_build/include/nest/genericmodel.h:161:9:
error: cannot convert ‘mynest::pif_psc_alpha*’ to ‘nest::Node*’ in
initialization
Node* n = new ( adr ) ElementT( proto_ );
^
make[2]: *** [src/CMakeFiles/mymodule_module.dir/build.make:63:
src/CMakeFiles/mymodule_module.dir/mymodule.cpp.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:125:
src/CMakeFiles/mymodule_module.dir/all] Error 2
make: *** [Makefile:152: all] Error 2