Hi Nina,
It looks like this is being caused by an old(er) NEST version being installed in the image
(master@1e0ce51, dated Oct 12, 2020), whereas the NEST extension module is expecting a
newer version of NEST (NEST 3), which has a slightly different API (some things were
renamed, causing the error you are seeing).
I suppose the ideal thing to do would be to ask the maintainers of this docker container
if they could update the version of NEST.
In case this fails, you might be interested in using the NEST Docker image, which does not
have any TvB couplings/co-simulation, but contains the latest NEST. You can find more
information about that here:
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
_______________________________________________
NEST Users mailing list -- users(a)nest-simulator.org
To unsubscribe send an email to users-leave(a)nest-simulator.org