Error in rule configure_veins_vlc, configure_veins, protobuf
RostyslavUA opened this issue · 10 comments
I encounter the problem when running seprantine scenario. Specifically, snakemake -jall
yields an error, here is a log
Building DAG of jobs...
Provided cores: 8
Rules claiming more threads will be scaled down.
Job stats:
job count min threads max threads
------------------- ------- ------------- -------------
all 1 1 1
build 2 8 8
build_veins 2 8 8
build_veins_vlc 2 8 8
configure 1 1 1
configure_veins 1 1 1
configure_veins_vlc 1 1 1
protobuf 1 1 1
total 11 1 8
Select jobs to execute...
[Sat Dec 18 23:08:10 2021]
rule configure_veins:
input: lib/veins/src/veins/base/messages/AirFrame.msg, lib/veins/src/veins/base/messages/BorderMsg.msg, lib/veins/src/veins/base/messages/MacPkt.msg, lib/veins/src/veins/modules/application/traci/TraCIDemo11pMessage.msg, lib/veins/src/veins/modules/messages/AckTimeOutMessage.msg, lib/veins/src/veins/modules/messages/AirFrame11p.msg, lib/veins/src/veins/modules/messages/BaseFrame1609_4.msg, lib/veins/src/veins/modules/messages/DemoSafetyMessage.msg, lib/veins/src/veins/modules/messages/DemoServiceAdvertisement.msg, lib/veins/src/veins/modules/messages/Mac80211Ack.msg, lib/veins/src/veins/modules/messages/Mac80211Pkt.msg, lib/veins/src/veins/modules/messages/PhyControlMessage.msg, lib/veins/src/veins/modules/messages/TraCITrafficLightMessage.msg, lib/veins/src/veins/base/connectionManager/BaseConnectionManager.cc, lib/veins/src/veins/base/connectionManager/ChannelAccess.cc, lib/veins/src/veins/base/connectionManager/ConnectionManager.cc, lib/veins/src/veins/base/connectionManager/NicEntryDebug.cc, lib/veins/src/veins/base/connectionManager/NicEntryDirect.cc, lib/veins/src/veins/base/modules/BaseApplLayer.cc, lib/veins/src/veins/base/modules/BaseBattery.cc, lib/veins/src/veins/base/modules/BaseLayer.cc, lib/veins/src/veins/base/modules/BaseMacLayer.cc, lib/veins/src/veins/base/modules/BaseMobility.cc, lib/veins/src/veins/base/modules/BaseModule.cc, lib/veins/src/veins/base/modules/BaseWorldUtility.cc, lib/veins/src/veins/base/modules/BatteryAccess.cc, lib/veins/src/veins/base/phyLayer/Antenna.cc, lib/veins/src/veins/base/phyLayer/BaseDecider.cc, lib/veins/src/veins/base/phyLayer/BasePhyLayer.cc, lib/veins/src/veins/base/phyLayer/ChannelInfo.cc, lib/veins/src/veins/base/phyLayer/Decider.cc, lib/veins/src/veins/base/phyLayer/PhyUtils.cc, lib/veins/src/veins/base/toolbox/Signal.cc, lib/veins/src/veins/base/toolbox/SignalUtils.cc, lib/veins/src/veins/base/toolbox/Spectrum.cc, lib/veins/src/veins/base/utils/Coord.cc, lib/veins/src/veins/base/utils/Heading.cc, lib/veins/src/veins/base/utils/NetwToMacControlInfo.cc, lib/veins/src/veins/base/utils/SimpleAddress.cc, lib/veins/src/veins/base/utils/winsupport.cc, lib/veins/src/veins/modules/analogueModel/BreakpointPathlossModel.cc, lib/veins/src/veins/modules/analogueModel/NakagamiFading.cc, lib/veins/src/veins/modules/analogueModel/PERModel.cc, lib/veins/src/veins/modules/analogueModel/SimpleObstacleShadowing.cc, lib/veins/src/veins/modules/analogueModel/SimplePathlossModel.cc, lib/veins/src/veins/modules/analogueModel/TwoRayInterferenceModel.cc, lib/veins/src/veins/modules/analogueModel/VehicleObstacleShadowing.cc, lib/veins/src/veins/modules/application/ieee80211p/DemoBaseApplLayer.cc, lib/veins/src/veins/modules/application/traci/MyVeinsApp.cc, lib/veins/src/veins/modules/application/traci/TraCIDemo11p.cc, lib/veins/src/veins/modules/application/traci/TraCIDemoRSU11p.cc, lib/veins/src/veins/modules/mac/ieee80211p/Mac1609_4.cc, lib/veins/src/veins/modules/mobility/LinearMobility.cc, lib/veins/src/veins/modules/mobility/traci/TraCIBuffer.cc, lib/veins/src/veins/modules/mobility/traci/TraCIColor.cc, lib/veins/src/veins/modules/mobility/traci/TraCICommandInterface.cc, lib/veins/src/veins/modules/mobility/traci/TraCIConnection.cc, lib/veins/src/veins/modules/mobility/traci/TraCICoordinateTransformation.cc, lib/veins/src/veins/modules/mobility/traci/TraCILauncher.cc, lib/veins/src/veins/modules/mobility/traci/TraCIMobility.cc, lib/veins/src/veins/modules/mobility/traci/TraCIRegionOfInterest.cc, lib/veins/src/veins/modules/mobility/traci/TraCIScenarioManager.cc, lib/veins/src/veins/modules/mobility/traci/TraCIScenarioManagerForker.cc, lib/veins/src/veins/modules/mobility/traci/TraCIScenarioManagerLaunchd.cc, lib/veins/src/veins/modules/mobility/traci/TraCIScreenRecorder.cc, lib/veins/src/veins/modules/mobility/traci/TraCIVehicleInserter.cc, lib/veins/src/veins/modules/obstacle/MobileHostObstacle.cc, lib/veins/src/veins/modules/obstacle/Obstacle.cc, lib/veins/src/veins/modules/obstacle/ObstacleControl.cc, lib/veins/src/veins/modules/obstacle/VehicleObstacleControl.cc, lib/veins/src/veins/modules/phy/Decider80211p.cc, lib/veins/src/veins/modules/phy/NistErrorRate.cc, lib/veins/src/veins/modules/phy/PhyLayer80211p.cc, lib/veins/src/veins/modules/phy/SampledAntenna1D.cc, lib/veins/src/veins/modules/utility/BBoxLookup.cc, lib/veins/src/veins/modules/utility/HasLogProxy.cc, lib/veins/src/veins/modules/utility/TimerManager.cc, lib/veins/src/veins/modules/world/annotations/AnnotationDummy.cc, lib/veins/src/veins/modules/world/annotations/AnnotationManager.cc, lib/veins/src/veins/modules/world/traci/trafficLight/TraCITrafficLightInterface.cc, lib/veins/src/veins/modules/world/traci/trafficLight/TraCITrafficLightProgram.cc, lib/veins/src/veins/modules/world/traci/trafficLight/logics/TraCITrafficLightAbstractLogic.cc, lib/veins/src/veins/modules/world/traci/trafficLight/logics/TraCITrafficLightSimpleLogic.cc, lib/veins/src/veins/veins.h, lib/veins/src/veins/base/connectionManager/BaseConnectionManager.h, lib/veins/src/veins/base/connectionManager/ChannelAccess.h, lib/veins/src/veins/base/connectionManager/ConnectionManager.h, lib/veins/src/veins/base/connectionManager/NicEntry.h, lib/veins/src/veins/base/connectionManager/NicEntryDebug.h, lib/veins/src/veins/base/connectionManager/NicEntryDirect.h, lib/veins/src/veins/base/modules/AddressingInterface.h, lib/veins/src/veins/base/modules/BaseApplLayer.h, lib/veins/src/veins/base/modules/BaseBattery.h, lib/veins/src/veins/base/modules/BaseLayer.h, lib/veins/src/veins/base/modules/BaseMacLayer.h, lib/veins/src/veins/base/modules/BaseMobility.h, lib/veins/src/veins/base/modules/BaseModule.h, lib/veins/src/veins/base/modules/BaseWorldUtility.h, lib/veins/src/veins/base/modules/BatteryAccess.h, lib/veins/src/veins/base/phyLayer/AnalogueModel.h, lib/veins/src/veins/base/phyLayer/Antenna.h, lib/veins/src/veins/base/phyLayer/BaseDecider.h, lib/veins/src/veins/base/phyLayer/BasePhyLayer.h, lib/veins/src/veins/base/phyLayer/ChannelInfo.h, lib/veins/src/veins/base/phyLayer/Decider.h, lib/veins/src/veins/base/phyLayer/DeciderToPhyInterface.h, lib/veins/src/veins/base/phyLayer/MacToPhyInterface.h, lib/veins/src/veins/base/phyLayer/PhyToMacControlInfo.h, lib/veins/src/veins/base/phyLayer/PhyUtils.h, lib/veins/src/veins/base/toolbox/Signal.h, lib/veins/src/veins/base/toolbox/SignalUtils.h, lib/veins/src/veins/base/toolbox/Spectrum.h, lib/veins/src/veins/base/utils/AntennaPosition.h, lib/veins/src/veins/base/utils/Coord.h, lib/veins/src/veins/base/utils/EnumBitset.h, lib/veins/src/veins/base/utils/FindModule.h, lib/veins/src/veins/base/utils/FWMath.h, lib/veins/src/veins/base/utils/Heading.h, lib/veins/src/veins/base/utils/HostState.h, lib/veins/src/veins/base/utils/MacToNetwControlInfo.h, lib/veins/src/veins/base/utils/Move.h, lib/veins/src/veins/base/utils/NetwToMacControlInfo.h, lib/veins/src/veins/base/utils/PassedMessage.h, lib/veins/src/veins/base/utils/POA.h, lib/veins/src/veins/base/utils/SimpleAddress.h, lib/veins/src/veins/base/utils/winsupport.h, lib/veins/src/veins/modules/analogueModel/BreakpointPathlossModel.h, lib/veins/src/veins/modules/analogueModel/NakagamiFading.h, lib/veins/src/veins/modules/analogueModel/PERModel.h, lib/veins/src/veins/modules/analogueModel/SimpleObstacleShadowing.h, lib/veins/src/veins/modules/analogueModel/SimplePathlossModel.h, lib/veins/src/veins/modules/analogueModel/TwoRayInterferenceModel.h, lib/veins/src/veins/modules/analogueModel/VehicleObstacleShadowing.h, lib/veins/src/veins/modules/application/ieee80211p/DemoBaseApplLayer.h, lib/veins/src/veins/modules/application/traci/MyVeinsApp.h, lib/veins/src/veins/modules/application/traci/TraCIDemo11p.h, lib/veins/src/veins/modules/application/traci/TraCIDemoRSU11p.h, lib/veins/src/veins/modules/mac/ieee80211p/DemoBaseApplLayerToMac1609_4Interface.h, lib/veins/src/veins/modules/mac/ieee80211p/Mac1609_4.h, lib/veins/src/veins/modules/mac/ieee80211p/Mac80211pToPhy11pInterface.h, lib/veins/src/veins/modules/mobility/LinearMobility.h, lib/veins/src/veins/modules/mobility/traci/ParBuffer.h, lib/veins/src/veins/modules/mobility/traci/TraCIBuffer.h, lib/veins/src/veins/modules/mobility/traci/TraCIColor.h, lib/veins/src/veins/modules/mobility/traci/TraCICommandInterface.h, lib/veins/src/veins/modules/mobility/traci/TraCIConnection.h, lib/veins/src/veins/modules/mobility/traci/TraCIConstants.h, lib/veins/src/veins/modules/mobility/traci/TraCICoord.h, lib/veins/src/veins/modules/mobility/traci/TraCICoordinateTransformation.h, lib/veins/src/veins/modules/mobility/traci/TraCILauncher.h, lib/veins/src/veins/modules/mobility/traci/TraCIMobility.h, lib/veins/src/veins/modules/mobility/traci/TraCIRegionOfInterest.h, lib/veins/src/veins/modules/mobility/traci/TraCIScenarioManager.h, lib/veins/src/veins/modules/mobility/traci/TraCIScenarioManagerForker.h, lib/veins/src/veins/modules/mobility/traci/TraCIScenarioManagerLaunchd.h, lib/veins/src/veins/modules/mobility/traci/TraCIScreenRecorder.h, lib/veins/src/veins/modules/mobility/traci/TraCIVehicleInserter.h, lib/veins/src/veins/modules/mobility/traci/VehicleSignal.h, lib/veins/src/veins/modules/obstacle/MobileHostObstacle.h, lib/veins/src/veins/modules/obstacle/Obstacle.h, lib/veins/src/veins/modules/obstacle/ObstacleControl.h, lib/veins/src/veins/modules/obstacle/VehicleObstacleControl.h, lib/veins/src/veins/modules/phy/Decider80211p.h, lib/veins/src/veins/modules/phy/Decider80211pToPhy80211pInterface.h, lib/veins/src/veins/modules/phy/DeciderResult80211.h, lib/veins/src/veins/modules/phy/NistErrorRate.h, lib/veins/src/veins/modules/phy/PhyLayer80211p.h, lib/veins/src/veins/modules/phy/SampledAntenna1D.h, lib/veins/src/veins/modules/utility/BBoxLookup.h, lib/veins/src/veins/modules/utility/Consts80211p.h, lib/veins/src/veins/modules/utility/ConstsPhy.h, lib/veins/src/veins/modules/utility/HasLogProxy.h, lib/veins/src/veins/modules/utility/MacToPhyControlInfo11p.h, lib/veins/src/veins/modules/utility/SignalManager.h, lib/veins/src/veins/modules/utility/TimerManager.h, lib/veins/src/veins/modules/world/annotations/AnnotationDummy.h, lib/veins/src/veins/modules/world/annotations/AnnotationManager.h, lib/veins/src/veins/modules/world/traci/trafficLight/TraCITrafficLightInterface.h, lib/veins/src/veins/modules/world/traci/trafficLight/TraCITrafficLightProgram.h, lib/veins/src/veins/modules/world/traci/trafficLight/logics/TraCITrafficLightAbstractLogic.h, lib/veins/src/veins/modules/world/traci/trafficLight/logics/TraCITrafficLightSimpleLogic.h
output: lib/veins/src/Makefile
jobid: 3
resources: tmpdir=C:\Users\ROSTYS~1\AppData\Local\Temp
[Sat Dec 18 23:08:10 2021]
rule configure_veins_vlc:
input: lib/veins-vlc/src/veins-vlc/messages/AirFrameVlc.msg, lib/veins-vlc/src/veins-vlc/messages/VlcMessage.msg, lib/veins-vlc/src/veins-vlc/AntennaHeadlight.cc, lib/veins-vlc/src/veins-vlc/AntennaTaillight.cc, lib/veins-vlc/src/veins-vlc/AntennaVlc.cc, lib/veins-vlc/src/veins-vlc/DeciderVlc.cc, lib/veins-vlc/src/veins-vlc/Photodiode.cc, lib/veins-vlc/src/veins-vlc/PhyLayerVlc.cc, lib/veins-vlc/src/veins-vlc/RadiationPattern.cc, lib/veins-vlc/src/veins-vlc/Splitter.cc, lib/veins-vlc/src/veins-vlc/VlcConnectionManager.cc, lib/veins-vlc/src/veins-vlc/analogueModel/EmpiricalLightModel.cc, lib/veins-vlc/src/veins-vlc/analogueModel/FittedEmpiricalLightModel.cc, lib/veins-vlc/src/veins-vlc/analogueModel/LsvLightModel.cc, lib/veins-vlc/src/veins-vlc/analogueModel/VehicleObstacleShadowingForVlc.cc, lib/veins-vlc/src/veins-vlc/application/simpleVlcApp/SimpleVlcApp.cc, lib/veins-vlc/src/veins-vlc/mac/MacLayerVlc.cc, lib/veins-vlc/src/veins-vlc/utility/Utils.cc, lib/veins-vlc/src/veins-vlc/AntennaHeadlight.h, lib/veins-vlc/src/veins-vlc/AntennaTaillight.h, lib/veins-vlc/src/veins-vlc/AntennaVlc.h, lib/veins-vlc/src/veins-vlc/DeciderVlc.h, lib/veins-vlc/src/veins-vlc/Photodiode.h, lib/veins-vlc/src/veins-vlc/PhyLayerVlc.h, lib/veins-vlc/src/veins-vlc/RadiationPattern.h, lib/veins-vlc/src/veins-vlc/Splitter.h, lib/veins-vlc/src/veins-vlc/veins-vlc.h, lib/veins-vlc/src/veins-vlc/VlcConnectionManager.h, lib/veins-vlc/src/veins-vlc/analogueModel/EmpiricalLightModel.h, lib/veins-vlc/src/veins-vlc/analogueModel/FittedEmpiricalLightModel.h, lib/veins-vlc/src/veins-vlc/analogueModel/LsvLightModel.h, lib/veins-vlc/src/veins-vlc/analogueModel/VehicleObstacleShadowingForVlc.h, lib/veins-vlc/src/veins-vlc/application/simpleVlcApp/SimpleVlcApp.h, lib/veins-vlc/src/veins-vlc/mac/MacLayerVlc.h, lib/veins-vlc/src/veins-vlc/utility/ConstsVlc.h, lib/veins-vlc/src/veins-vlc/utility/Utils.h
output: lib/veins-vlc/src/Makefile
jobid: 5
resources: tmpdir=C:\Users\ROSTYS~1\AppData\Local\Temp
[Sat Dec 18 23:08:10 2021]
rule protobuf:
input: src/protobuf/veinsgym.proto
output: src/protobuf/veinsgym.pb.cc, src/protobuf/veinsgym.pb.h
jobid: 7
wildcards: file=veinsgym
resources: tmpdir=C:\Users\ROSTYS~1\AppData\Local\Temp
[Sat Dec 18 23:08:10 2021]
[Sat Dec 18 23:08:10 2021]
Error in rule configure_veins_vlc:
Error in rule configure_veins:
jobid: 5
jobid: 3
output: lib/veins-vlc/src/Makefile
output: lib/veins/src/Makefile
shell:
env -C lib/veins-vlc ./configure --with-veins=../veins
(one of the commands exited with non-zero exit code; note that snakemake uses bash strict mode!)
shell:
env -C lib/veins ./configure
(one of the commands exited with non-zero exit code; note that snakemake uses bash strict mode!)
[Sat Dec 18 23:08:10 2021]
Error in rule protobuf:
jobid: 7
output: src/protobuf/veinsgym.pb.cc, src/protobuf/veinsgym.pb.h
shell:
env protoc --proto_path src/protobuf --cpp_out src/protobuf src/protobuf/veinsgym.proto
(one of the commands exited with non-zero exit code; note that snakemake uses bash strict mode!)
Shutting down, this might take some time.
Exiting because a job execution failed. Look above for error message
Complete log: C:\Users\User\git\serpentine-env\.snakemake\log\2021-12-18T230810.057922.snakemake.log
I use windows 10, 64 bit
Python 3.8
veins-gym 0.3.0
gym 0.21.0
omnetpp 5.6.2
sumo-1.8.0
veins 5.2
protoc-3.19.1
Note that I also receive an error when running opp_run
. From the error message it does not seem that those issues are related, but if they are - I will provide the log.
How could I solve the problem? Thank you!
Hi,
can you run one of the failing commands directly in the terminal and check what the error is? E.g.
env -C lib/veins-vlc ./configure --with-veins=../veins
# or
env protoc --proto_path src/protobuf --cpp_out src/protobuf src/protobuf/veinsgym.proto
I suspect that -- as you are working on Windows, your shell environment may not be set up as expected. We've designed and tested the gym only on Linux so far. So maybe the env
command or the protoc
calls do not work as expected.
Best,
Dominik
Thank you for the answer!
You are right,
env -C lib/veins-vlc ./configure --with-veins=../veins
yields
'env' is not recognized as an internal or external command,
operable program or batch file.
How should I set up my environment to make it work?
Your OMNeT++ installation should have brought with it a MinGW environment which contains the necessary environment to execute unix shell scripts. Try to open a console from that or add its binaries to your PATH.
An alternative could be using Windows Subsystem for Linux (WSL) or git bash, which also both bring the necessary tools to your command line environment.
Thank you for the answer. For already many days I am trying to make it work. I have switched to Linux as you suggested and I use Ubuntu-20.04 on wsl. Now I stuck at the following point: when running snakemake -jall
, this is the error I get
Building DAG of jobs...
Using shell: /usr/bin/bash
Provided cores: 8
Rules claiming more threads will be scaled down.
Job stats:
job count min threads max threads
--------------- ------- ------------- -------------
all 1 1 1
build 2 8 8
build_veins 1 8 8
build_veins_vlc 1 8 8
total 5 1 8
Select jobs to execute...
[Wed Jan 5 00:23:29 2022]
rule build:
input: lib/veins/src/libveins_dbg.so, lib/veins-vlc/src/libveins-vlc_dbg.so, src/Makefile
output: src/experiment_dbg
jobid: 1
wildcards: dbg=_dbg
threads: 8
resources: tmpdir=/tmp
make: Entering directory '/home/ross/serpentine-env/src'
Creating executable: out/gcc-debug//experiment_dbg
/usr/bin/ld: out/gcc-debug//protobuf/veinsgym.pb.o: in function `veinsgym::proto::Request::_InternalParse(char const*, google::protobuf::internal::ParseContext*)':
/home/ross/serpentine-env/src/protobuf/veinsgym.pb.cc:563: undefined reference to `google::protobuf::internal::ParseContext::ParseMessage(google::protobuf::MessageLite*, char const*)'
/usr/bin/ld: /home/ross/serpentine-env/src/protobuf/veinsgym.pb.cc:571: undefined reference to `google::protobuf::internal::ParseContext::ParseMessage(google::protobuf::MessageLite*, char const*)'
/usr/bin/ld: /home/ross/serpentine-env/src/protobuf/veinsgym.pb.cc:579: undefined reference to `google::protobuf::internal::ParseContext::ParseMessage(google::protobuf::MessageLite*, char const*)'
/usr/bin/ld: /home/ross/serpentine-env/src/protobuf/veinsgym.pb.cc:593: undefined reference to `google::protobuf::internal::UnknownFieldParse(unsigned long, google::protobuf::UnknownFieldSet*, char const*, google::protobuf::internal::ParseContext*)'
/usr/bin/ld: out/gcc-debug//protobuf/veinsgym.pb.o: in function `veinsgym::proto::Request::_InternalSerialize(unsigned char*, google::protobuf::io::EpsCopyOutputStream*) const':
/home/ross/serpentine-env/src/protobuf/veinsgym.pb.cc:644: undefined reference to `google::protobuf::internal::WireFormat::InternalSerializeUnknownFieldsToArray(google::protobuf::UnknownFieldSet const&, unsigned char*, google::protobuf::io::EpsCopyOutputStream*)'
/usr/bin/ld: out/gcc-debug//protobuf/veinsgym.pb.o: in function `veinsgym::proto::Request::ByteSizeLong() const':
/home/ross/serpentine-env/src/protobuf/veinsgym.pb.cc:690: undefined reference to `google::protobuf::Message::MaybeComputeUnknownFieldsSize(unsigned long, google::protobuf::internal::CachedSize*) const'
/usr/bin/ld: out/gcc-debug//protobuf/veinsgym.pb.o: in function `veinsgym::proto::Request::GetMetadata() const':
/home/ross/serpentine-env/src/protobuf/veinsgym.pb.cc:757: undefined reference to `google::protobuf::internal::AssignDescriptors(google::protobuf::internal::DescriptorTable const* (*)(), std::once_flag*, google::protobuf::Metadata const&)'
/usr/bin/ld: out/gcc-debug//protobuf/veinsgym.pb.o: in function `veinsgym::proto::Reply::_InternalParse(char const*, google::protobuf::internal::ParseContext*)':
/home/ross/serpentine-env/src/protobuf/veinsgym.pb.cc:946: undefined reference to `google::protobuf::internal::ParseContext::ParseMessage(google::protobuf::MessageLite*, char const*)'
/usr/bin/ld: /home/ross/serpentine-env/src/protobuf/veinsgym.pb.cc:954: undefined reference to `google::protobuf::internal::ParseContext::ParseMessage(google::protobuf::MessageLite*, char const*)'
/usr/bin/ld: /home/ross/serpentine-env/src/protobuf/veinsgym.pb.cc:962: undefined reference to `google::protobuf::internal::ParseContext::ParseMessage(google::protobuf::MessageLite*, char const*)'
/usr/bin/ld: /home/ross/serpentine-env/src/protobuf/veinsgym.pb.cc:976: undefined reference to `google::protobuf::internal::UnknownFieldParse(unsigned long, google::protobuf::UnknownFieldSet*, char const*, google::protobuf::internal::ParseContext*)'
/usr/bin/ld: out/gcc-debug//protobuf/veinsgym.pb.o: in function `veinsgym::proto::Reply::_InternalSerialize(unsigned char*, google::protobuf::io::EpsCopyOutputStream*) const':
/home/ross/serpentine-env/src/protobuf/veinsgym.pb.cc:1027: undefined reference to `google::protobuf::internal::WireFormat::InternalSerializeUnknownFieldsToArray(google::protobuf::UnknownFieldSet const&, unsigned char*, google::protobuf::io::EpsCopyOutputStream*)'
/usr/bin/ld: out/gcc-debug//protobuf/veinsgym.pb.o: in function `veinsgym::proto::Reply::ByteSizeLong() const':
/home/ross/serpentine-env/src/protobuf/veinsgym.pb.cc:1073: undefined reference to `google::protobuf::Message::MaybeComputeUnknownFieldsSize(unsigned long, google::protobuf::internal::CachedSize*) const'
/usr/bin/ld: out/gcc-debug//protobuf/veinsgym.pb.o: in function `veinsgym::proto::Reply::GetMetadata() const':
/home/ross/serpentine-env/src/protobuf/veinsgym.pb.cc:1140: undefined reference to `google::protobuf::internal::AssignDescriptors(google::protobuf::internal::DescriptorTable const* (*)(), std::once_flag*, google::protobuf::Metadata const&)'/usr/bin/ld: out/gcc-debug//protobuf/veinsgym.pb.o: in function `veinsgym::proto::Init::Init(veinsgym::proto::Init const&)':
/home/ross/serpentine-env/src/protobuf/veinsgym.pb.cc:1166: undefined reference to `google::protobuf::internal::ArenaStringPtr::Set(google::protobuf::internal::ArenaStringPtr::EmptyDefault, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, google::protobuf::Arena*)'
/usr/bin/ld: /home/ross/serpentine-env/src/protobuf/veinsgym.pb.cc:1174: undefined reference to `google::protobuf::internal::ArenaStringPtr::Set(google::protobuf::internal::ArenaStringPtr::EmptyDefault, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, google::protobuf::Arena*)'
/usr/bin/ld: /home/ross/serpentine-env/src/protobuf/veinsgym.pb.cc:1182: undefined reference to `google::protobuf::internal::ArenaStringPtr::Set(google::protobuf::internal::ArenaStringPtr::EmptyDefault, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, google::protobuf::Arena*)'
/usr/bin/ld: out/gcc-debug//protobuf/veinsgym.pb.o: in function `veinsgym::proto::Init::Clear()':
/home/ross/serpentine-env/src/protobuf/veinsgym.pb.cc:1233: undefined reference to `google::protobuf::internal::ArenaStringPtr::ClearToEmpty()'
/usr/bin/ld: /home/ross/serpentine-env/src/protobuf/veinsgym.pb.cc:1234: undefined reference to `google::protobuf::internal::ArenaStringPtr::ClearToEmpty()'
/usr/bin/ld: /home/ross/serpentine-env/src/protobuf/veinsgym.pb.cc:1235: undefined reference to `google::protobuf::internal::ArenaStringPtr::ClearToEmpty()'
/usr/bin/ld: out/gcc-debug//protobuf/veinsgym.pb.o: in function `veinsgym::proto::Init::_InternalParse(char const*, google::protobuf::internal::ParseContext*)':
/home/ross/serpentine-env/src/protobuf/veinsgym.pb.cc:1249: undefined reference to `google::protobuf::internal::InlineGreedyStringParser(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*, char const*, google::protobuf::internal::ParseContext*)'
/usr/bin/ld: /home/ross/serpentine-env/src/protobuf/veinsgym.pb.cc:1259: undefined reference to `google::protobuf::internal::InlineGreedyStringParser(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*, char const*, google::protobuf::internal::ParseContext*)'
/usr/bin/ld: /home/ross/serpentine-env/src/protobuf/veinsgym.pb.cc:1269: undefined reference to `google::protobuf::internal::InlineGreedyStringParser(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*, char const*, google::protobuf::internal::ParseContext*)'
/usr/bin/ld: /home/ross/serpentine-env/src/protobuf/veinsgym.pb.cc:1284: undefined reference to `google::protobuf::internal::UnknownFieldParse(unsigned long, google::protobuf::UnknownFieldSet*, char const*, google::protobuf::internal::ParseContext*)'
/usr/bin/ld: out/gcc-debug//protobuf/veinsgym.pb.o: in function `veinsgym::proto::Init::_InternalSerialize(unsigned char*, google::protobuf::io::EpsCopyOutputStream*) const':
/home/ross/serpentine-env/src/protobuf/veinsgym.pb.cc:1335: undefined reference to `google::protobuf::internal::WireFormat::InternalSerializeUnknownFieldsToArray(google::protobuf::UnknownFieldSet const&, unsigned char*, google::protobuf::io::EpsCopyOutputStream*)'
/usr/bin/ld: out/gcc-debug//protobuf/veinsgym.pb.o: in function `veinsgym::proto::Init::ByteSizeLong() const':
/home/ross/serpentine-env/src/protobuf/veinsgym.pb.cc:1371: undefined reference to `google::protobuf::Message::MaybeComputeUnknownFieldsSize(unsigned long, google::protobuf::internal::CachedSize*) const'
/usr/bin/ld: out/gcc-debug//protobuf/veinsgym.pb.o: in function `veinsgym::proto::Init::_internal_set_action_space_code(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)':
/home/ross/serpentine-env/src/protobuf/veinsgym.pb.h:2983: undefined reference to `google::protobuf::internal::ArenaStringPtr::Set(google::protobuf::internal::ArenaStringPtr::EmptyDefault, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, google::protobuf::Arena*)'
/usr/bin/ld: out/gcc-debug//protobuf/veinsgym.pb.o: in function `veinsgym::proto::Init::_internal_set_observation_space_code(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)':
/home/ross/serpentine-env/src/protobuf/veinsgym.pb.h:3034: undefined reference to `google::protobuf::internal::ArenaStringPtr::Set(google::protobuf::internal::ArenaStringPtr::EmptyDefault, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, google::protobuf::Arena*)'
/usr/bin/ld: out/gcc-debug//protobuf/veinsgym.pb.o: in function `veinsgym::proto::Init::_internal_set_reward_space_code(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)':
/home/ross/serpentine-env/src/protobuf/veinsgym.pb.h:3085: undefined reference to `google::protobuf::internal::ArenaStringPtr::Set(google::protobuf::internal::ArenaStringPtr::EmptyDefault, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, google::protobuf::Arena*)'
/usr/bin/ld: out/gcc-debug//protobuf/veinsgym.pb.o: in function `veinsgym::proto::Init::GetMetadata() const':
/home/ross/serpentine-env/src/protobuf/veinsgym.pb.cc:1441: undefined reference to `google::protobuf::internal::AssignDescriptors(google::protobuf::internal::DescriptorTable const* (*)(), std::once_flag*, google::protobuf::Metadata const&)'/usr/bin/ld: out/gcc-debug//protobuf/veinsgym.pb.o: in function `veinsgym::proto::Shutdown::Shutdown(veinsgym::proto::Shutdown const&)':
/home/ross/serpentine-env/src/protobuf/veinsgym.pb.cc:1456: undefined reference to `google::protobuf::internal::ZeroFieldsBase::~ZeroFieldsBase()'
/usr/bin/ld: out/gcc-debug//protobuf/veinsgym.pb.o: in function `veinsgym::proto::Shutdown::GetMetadata() const':
/home/ross/serpentine-env/src/protobuf/veinsgym.pb.cc:1480: undefined reference to `google::protobuf::internal::AssignDescriptors(google::protobuf::internal::DescriptorTable const* (*)(), std::once_flag*, google::protobuf::Metadata const&)'/usr/bin/ld: out/gcc-debug//protobuf/veinsgym.pb.o: in function `veinsgym::proto::Step::_InternalParse(char const*, google::protobuf::internal::ParseContext*)':
/home/ross/serpentine-env/src/protobuf/veinsgym.pb.cc:1580: undefined reference to `google::protobuf::internal::ParseContext::ParseMessage(google::protobuf::MessageLite*, char const*)'
/usr/bin/ld: /home/ross/serpentine-env/src/protobuf/veinsgym.pb.cc:1588: undefined reference to `google::protobuf::internal::ParseContext::ParseMessage(google::protobuf::MessageLite*, char const*)'
/usr/bin/ld: /home/ross/serpentine-env/src/protobuf/veinsgym.pb.cc:1602: undefined reference to `google::protobuf::internal::UnknownFieldParse(unsigned long, google::protobuf::UnknownFieldSet*, char const*, google::protobuf::internal::ParseContext*)'
/usr/bin/ld: out/gcc-debug//protobuf/veinsgym.pb.o: in function `veinsgym::proto::Step::_InternalSerialize(unsigned char*, google::protobuf::io::EpsCopyOutputStream*) const':
/home/ross/serpentine-env/src/protobuf/veinsgym.pb.cc:1639: undefined reference to `google::protobuf::internal::WireFormat::InternalSerializeUnknownFieldsToArray(google::protobuf::UnknownFieldSet const&, unsigned char*, google::protobuf::io::EpsCopyOutputStream*)'
/usr/bin/ld: out/gcc-debug//protobuf/veinsgym.pb.o: in function `veinsgym::proto::Step::ByteSizeLong() const':
/home/ross/serpentine-env/src/protobuf/veinsgym.pb.cc:1668: undefined reference to `google::protobuf::Message::MaybeComputeUnknownFieldsSize(unsigned long, google::protobuf::internal::CachedSize*) const'
/usr/bin/ld: out/gcc-debug//protobuf/veinsgym.pb.o: in function `veinsgym::proto::Step::GetMetadata() const':
/home/ross/serpentine-env/src/protobuf/veinsgym.pb.cc:1724: undefined reference to `google::protobuf::internal::AssignDescriptors(google::protobuf::internal::DescriptorTable const* (*)(), std::once_flag*, google::protobuf::Metadata const&)'/usr/bin/ld: out/gcc-debug//protobuf/veinsgym.pb.o: in function `veinsgym::proto::Space::_InternalParse(char const*, google::protobuf::internal::ParseContext*)':
/home/ross/serpentine-env/src/protobuf/veinsgym.pb.cc:1992: undefined reference to `google::protobuf::internal::ParseContext::ParseMessage(google::protobuf::MessageLite*, char const*)'
/usr/bin/ld: /home/ross/serpentine-env/src/protobuf/veinsgym.pb.cc:2000: undefined reference to `google::protobuf::internal::ParseContext::ParseMessage(google::protobuf::MessageLite*, char const*)'
/usr/bin/ld: /home/ross/serpentine-env/src/protobuf/veinsgym.pb.cc:2008: undefined reference to `google::protobuf::internal::ParseContext::ParseMessage(google::protobuf::MessageLite*, char const*)'
/usr/bin/ld: /home/ross/serpentine-env/src/protobuf/veinsgym.pb.cc:2016: undefined reference to `google::protobuf::internal::ParseContext::ParseMessage(google::protobuf::MessageLite*, char const*)'
/usr/bin/ld: /home/ross/serpentine-env/src/protobuf/veinsgym.pb.cc:2024: undefined reference to `google::protobuf::internal::ParseContext::ParseMessage(google::protobuf::MessageLite*, char const*)'
/usr/bin/ld: out/gcc-debug//protobuf/veinsgym.pb.o:/home/ross/serpentine-env/src/protobuf/veinsgym.pb.cc:2032: more undefined references to `google::protobuf::internal::ParseContext::ParseMessage(google::protobuf::MessageLite*, char const*)' follow
/usr/bin/ld: out/gcc-debug//protobuf/veinsgym.pb.o: in function `veinsgym::proto::Space::_InternalParse(char const*, google::protobuf::internal::ParseContext*)':
/home/ross/serpentine-env/src/protobuf/veinsgym.pb.cc:2046: undefined reference to `google::protobuf::internal::UnknownFieldParse(unsigned long, google::protobuf::UnknownFieldSet*, char const*, google::protobuf::internal::ParseContext*)'
/usr/bin/ld: out/gcc-debug//protobuf/veinsgym.pb.o: in function `veinsgym::proto::Space::_InternalSerialize(unsigned char*, google::protobuf::io::EpsCopyOutputStream*) const':
/home/ross/serpentine-env/src/protobuf/veinsgym.pb.cc:2115: undefined reference to `google::protobuf::internal::WireFormat::InternalSerializeUnknownFieldsToArray(google::protobuf::UnknownFieldSet const&, unsigned char*, google::protobuf::io::EpsCopyOutputStream*)'
/usr/bin/ld: out/gcc-debug//protobuf/veinsgym.pb.o: in function `veinsgym::proto::Space::ByteSizeLong() const':
/home/ross/serpentine-env/src/protobuf/veinsgym.pb.cc:2177: undefined reference to `google::protobuf::Message::MaybeComputeUnknownFieldsSize(unsigned long, google::protobuf::internal::CachedSize*) const'
/usr/bin/ld: out/gcc-debug//protobuf/veinsgym.pb.o: in function `veinsgym::proto::Space::GetMetadata() const':
/home/ross/serpentine-env/src/protobuf/veinsgym.pb.cc:2252: undefined reference to `google::protobuf::internal::AssignDescriptors(google::protobuf::internal::DescriptorTable const* (*)(), std::once_flag*, google::protobuf::Metadata const&)'/usr/bin/ld: out/gcc-debug//protobuf/veinsgym.pb.o: in function `veinsgym::proto::Box::Box(google::protobuf::Arena*, bool)':
/home/ross/serpentine-env/src/protobuf/veinsgym.pb.cc:2264: undefined reference to `google::protobuf::RepeatedField<double>::RepeatedField(google::protobuf::Arena*)'
/usr/bin/ld: out/gcc-debug//protobuf/veinsgym.pb.o: in function `veinsgym::proto::Box::Box(veinsgym::proto::Box const&)':
/home/ross/serpentine-env/src/protobuf/veinsgym.pb.cc:2273: undefined reference to `google::protobuf::RepeatedField<double>::RepeatedField(google::protobuf::RepeatedField<double> const&)'
/usr/bin/ld: out/gcc-debug//protobuf/veinsgym.pb.o: in function `veinsgym::proto::Box::Clear()':
/home/ross/serpentine-env/src/protobuf/veinsgym.pb.cc:2308: undefined reference to `google::protobuf::RepeatedField<double>::Clear()'
/usr/bin/ld: out/gcc-debug//protobuf/veinsgym.pb.o: in function `veinsgym::proto::Box::_InternalParse(char const*, google::protobuf::internal::ParseContext*)':
/home/ross/serpentine-env/src/protobuf/veinsgym.pb.cc:2321: undefined reference to `google::protobuf::internal::PackedDoubleParser(void*, char const*, google::protobuf::internal::ParseContext*)'
/usr/bin/ld: /home/ross/serpentine-env/src/protobuf/veinsgym.pb.cc:2338: undefined reference to `google::protobuf::internal::UnknownFieldParse(unsigned long, google::protobuf::UnknownFieldSet*, char const*, google::protobuf::internal::ParseContext*)'
/usr/bin/ld: out/gcc-debug//protobuf/veinsgym.pb.o: in function `unsigned char* google::protobuf::io::EpsCopyOutputStream::WriteFixedPacked<google::protobuf::RepeatedField<double> >(int, google::protobuf::RepeatedField<double> const&, unsigned char*)':
/usr/local/include/google/protobuf/io/coded_stream.h:807: undefined reference to `google::protobuf::RepeatedField<double>::size() const'
/usr/bin/ld: /usr/local/include/google/protobuf/io/coded_stream.h:810: undefined reference to `google::protobuf::RepeatedField<double>::data() const'
/usr/bin/ld: out/gcc-debug//protobuf/veinsgym.pb.o: in function `veinsgym::proto::Box::_InternalSerialize(unsigned char*, google::protobuf::io::EpsCopyOutputStream*) const':
/home/ross/serpentine-env/src/protobuf/veinsgym.pb.cc:2364: undefined reference to `google::protobuf::internal::WireFormat::InternalSerializeUnknownFieldsToArray(google::protobuf::UnknownFieldSet const&, unsigned char*, google::protobuf::io::EpsCopyOutputStream*)'
/usr/bin/ld: out/gcc-debug//protobuf/veinsgym.pb.o: in function `veinsgym::proto::Box::ByteSizeLong() const':
/home/ross/serpentine-env/src/protobuf/veinsgym.pb.cc:2391: undefined reference to `google::protobuf::Message::MaybeComputeUnknownFieldsSize(unsigned long, google::protobuf::internal::CachedSize*) const'
/usr/bin/ld: out/gcc-debug//protobuf/veinsgym.pb.o: in function `veinsgym::proto::Box::GetMetadata() const':
/home/ross/serpentine-env/src/protobuf/veinsgym.pb.cc:2437: undefined reference to `google::protobuf::internal::AssignDescriptors(google::protobuf::internal::DescriptorTable const* (*)(), std::once_flag*, google::protobuf::Metadata const&)'/usr/bin/ld: out/gcc-debug//protobuf/veinsgym.pb.o: in function `veinsgym::proto::Dict_Item::Dict_Item(veinsgym::proto::Dict_Item const&)':
/home/ross/serpentine-env/src/protobuf/veinsgym.pb.cc:2468: undefined reference to `google::protobuf::internal::ArenaStringPtr::Set(google::protobuf::internal::ArenaStringPtr::EmptyDefault, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, google::protobuf::Arena*)'
/usr/bin/ld: out/gcc-debug//protobuf/veinsgym.pb.o: in function `veinsgym::proto::Dict_Item::Clear()':
/home/ross/serpentine-env/src/protobuf/veinsgym.pb.cc:2516: undefined reference to `google::protobuf::internal::ArenaStringPtr::ClearToEmpty()'
/usr/bin/ld: out/gcc-debug//protobuf/veinsgym.pb.o: in function `veinsgym::proto::Dict_Item::_InternalParse(char const*, google::protobuf::internal::ParseContext*)':
/home/ross/serpentine-env/src/protobuf/veinsgym.pb.cc:2534: undefined reference to `google::protobuf::internal::InlineGreedyStringParser(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*, char const*, google::protobuf::internal::ParseContext*)'
/usr/bin/ld: /home/ross/serpentine-env/src/protobuf/veinsgym.pb.cc:2543: undefined reference to `google::protobuf::internal::ParseContext::ParseMessage(google::protobuf::MessageLite*, char const*)'
/usr/bin/ld: /home/ross/serpentine-env/src/protobuf/veinsgym.pb.cc:2557: undefined reference to `google::protobuf::internal::UnknownFieldParse(unsigned long, google::protobuf::UnknownFieldSet*, char const*, google::protobuf::internal::ParseContext*)'
/usr/bin/ld: out/gcc-debug//protobuf/veinsgym.pb.o: in function `veinsgym::proto::Dict_Item::_InternalSerialize(unsigned char*, google::protobuf::io::EpsCopyOutputStream*) const':
/home/ross/serpentine-env/src/protobuf/veinsgym.pb.cc:2596: undefined reference to `google::protobuf::internal::WireFormat::InternalSerializeUnknownFieldsToArray(google::protobuf::UnknownFieldSet const&, unsigned char*, google::protobuf::io::EpsCopyOutputStream*)'
/usr/bin/ld: out/gcc-debug//protobuf/veinsgym.pb.o: in function `veinsgym::proto::Dict_Item::ByteSizeLong() const':
/home/ross/serpentine-env/src/protobuf/veinsgym.pb.cc:2625: undefined reference to `google::protobuf::Message::MaybeComputeUnknownFieldsSize(unsigned long, google::protobuf::internal::CachedSize*) const'
/usr/bin/ld: out/gcc-debug//protobuf/veinsgym.pb.o: in function `veinsgym::proto::Dict_Item::_internal_set_key(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)':
/home/ross/serpentine-env/src/protobuf/veinsgym.pb.h:3836: undefined reference to `google::protobuf::internal::ArenaStringPtr::Set(google::protobuf::internal::ArenaStringPtr::EmptyDefault, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, google::protobuf::Arena*)'
/usr/bin/ld: out/gcc-debug//protobuf/veinsgym.pb.o: in function `veinsgym::proto::Dict_Item::GetMetadata() const':
/home/ross/serpentine-env/src/protobuf/veinsgym.pb.cc:2683: undefined reference to `google::protobuf::internal::AssignDescriptors(google::protobuf::internal::DescriptorTable const* (*)(), std::once_flag*, google::protobuf::Metadata const&)'/usr/bin/ld: out/gcc-debug//protobuf/veinsgym.pb.o: in function `veinsgym::proto::Dict::_InternalParse(char const*, google::protobuf::internal::ParseContext*)':
/home/ross/serpentine-env/src/protobuf/veinsgym.pb.cc:2755: undefined reference to `google::protobuf::internal::ParseContext::ParseMessage(google::protobuf::MessageLite*, char const*)'
/usr/bin/ld: /home/ross/serpentine-env/src/protobuf/veinsgym.pb.cc:2771: undefined reference to `google::protobuf::internal::UnknownFieldParse(unsigned long, google::protobuf::UnknownFieldSet*, char const*, google::protobuf::internal::ParseContext*)'
/usr/bin/ld: out/gcc-debug//protobuf/veinsgym.pb.o: in function `veinsgym::proto::Dict::_InternalSerialize(unsigned char*, google::protobuf::io::EpsCopyOutputStream*) const':
/home/ross/serpentine-env/src/protobuf/veinsgym.pb.cc:2800: undefined reference to `google::protobuf::internal::WireFormat::InternalSerializeUnknownFieldsToArray(google::protobuf::UnknownFieldSet const&, unsigned char*, google::protobuf::io::EpsCopyOutputStream*)'
/usr/bin/ld: out/gcc-debug//protobuf/veinsgym.pb.o: in function `veinsgym::proto::Dict::ByteSizeLong() const':
/home/ross/serpentine-env/src/protobuf/veinsgym.pb.cc:2822: undefined reference to `google::protobuf::Message::MaybeComputeUnknownFieldsSize(unsigned long, google::protobuf::internal::CachedSize*) const'
/usr/bin/ld: out/gcc-debug//protobuf/veinsgym.pb.o: in function `veinsgym::proto::Dict::GetMetadata() const':
/home/ross/serpentine-env/src/protobuf/veinsgym.pb.cc:2868: undefined reference to `google::protobuf::internal::AssignDescriptors(google::protobuf::internal::DescriptorTable const* (*)(), std::once_flag*, google::protobuf::Metadata const&)'/usr/bin/ld: out/gcc-debug//protobuf/veinsgym.pb.o: in function `veinsgym::proto::Discrete::_InternalParse(char const*, google::protobuf::internal::ParseContext*)':
/home/ross/serpentine-env/src/protobuf/veinsgym.pb.cc:2951: undefined reference to `google::protobuf::internal::UnknownFieldParse(unsigned long, google::protobuf::UnknownFieldSet*, char const*, google::protobuf::internal::ParseContext*)'
/usr/bin/ld: out/gcc-debug//protobuf/veinsgym.pb.o: in function `veinsgym::proto::Discrete::_InternalSerialize(unsigned char*, google::protobuf::io::EpsCopyOutputStream*) const':
/home/ross/serpentine-env/src/protobuf/veinsgym.pb.cc:2978: undefined reference to `google::protobuf::internal::WireFormat::InternalSerializeUnknownFieldsToArray(google::protobuf::UnknownFieldSet const&, unsigned char*, google::protobuf::io::EpsCopyOutputStream*)'
/usr/bin/ld: out/gcc-debug//protobuf/veinsgym.pb.o: in function `veinsgym::proto::Discrete::ByteSizeLong() const':
/home/ross/serpentine-env/src/protobuf/veinsgym.pb.cc:2998: undefined reference to `google::protobuf::Message::MaybeComputeUnknownFieldsSize(unsigned long, google::protobuf::internal::CachedSize*) const'
/usr/bin/ld: out/gcc-debug//protobuf/veinsgym.pb.o: in function `veinsgym::proto::Discrete::GetMetadata() const':
/home/ross/serpentine-env/src/protobuf/veinsgym.pb.cc:3046: undefined reference to `google::protobuf::internal::AssignDescriptors(google::protobuf::internal::DescriptorTable const* (*)(), std::once_flag*, google::protobuf::Metadata const&)'/usr/bin/ld: out/gcc-debug//protobuf/veinsgym.pb.o: in function `veinsgym::proto::MultiBinary::MultiBinary(google::protobuf::Arena*, bool)':
/home/ross/serpentine-env/src/protobuf/veinsgym.pb.cc:3058: undefined reference to `google::protobuf::RepeatedField<bool>::RepeatedField(google::protobuf::Arena*)'
/usr/bin/ld: out/gcc-debug//protobuf/veinsgym.pb.o: in function `veinsgym::proto::MultiBinary::MultiBinary(veinsgym::proto::MultiBinary const&)':
/home/ross/serpentine-env/src/protobuf/veinsgym.pb.cc:3067: undefined reference to `google::protobuf::RepeatedField<bool>::RepeatedField(google::protobuf::RepeatedField<bool> const&)'
/usr/bin/ld: out/gcc-debug//protobuf/veinsgym.pb.o: in function `veinsgym::proto::MultiBinary::Clear()':
/home/ross/serpentine-env/src/protobuf/veinsgym.pb.cc:3102: undefined reference to `google::protobuf::RepeatedField<bool>::Clear()'
/usr/bin/ld: out/gcc-debug//protobuf/veinsgym.pb.o: in function `veinsgym::proto::MultiBinary::_InternalParse(char const*, google::protobuf::internal::ParseContext*)':
/home/ross/serpentine-env/src/protobuf/veinsgym.pb.cc:3115: undefined reference to `google::protobuf::internal::PackedBoolParser(void*, char const*, google::protobuf::internal::ParseContext*)'
/usr/bin/ld: /home/ross/serpentine-env/src/protobuf/veinsgym.pb.cc:3132: undefined reference to `google::protobuf::internal::UnknownFieldParse(unsigned long, google::protobuf::UnknownFieldSet*, char const*, google::protobuf::internal::ParseContext*)'
/usr/bin/ld: out/gcc-debug//protobuf/veinsgym.pb.o: in function `unsigned char* google::protobuf::io::EpsCopyOutputStream::WriteFixedPacked<google::protobuf::RepeatedField<bool> >(int, google::protobuf::RepeatedField<bool> const&, unsigned char*)':
/usr/local/include/google/protobuf/io/coded_stream.h:807: undefined reference to `google::protobuf::RepeatedField<bool>::size() const'
/usr/bin/ld: /usr/local/include/google/protobuf/io/coded_stream.h:810: undefined reference to `google::protobuf::RepeatedField<bool>::data() const'
/usr/bin/ld: out/gcc-debug//protobuf/veinsgym.pb.o: in function `veinsgym::proto::MultiBinary::_InternalSerialize(unsigned char*, google::protobuf::io::EpsCopyOutputStream*) const':
/home/ross/serpentine-env/src/protobuf/veinsgym.pb.cc:3158: undefined reference to `google::protobuf::internal::WireFormat::InternalSerializeUnknownFieldsToArray(google::protobuf::UnknownFieldSet const&, unsigned char*, google::protobuf::io::EpsCopyOutputStream*)'
/usr/bin/ld: out/gcc-debug//protobuf/veinsgym.pb.o: in function `veinsgym::proto::MultiBinary::ByteSizeLong() const':
/home/ross/serpentine-env/src/protobuf/veinsgym.pb.cc:3185: undefined reference to `google::protobuf::Message::MaybeComputeUnknownFieldsSize(unsigned long, google::protobuf::internal::CachedSize*) const'
/usr/bin/ld: out/gcc-debug//protobuf/veinsgym.pb.o: in function `veinsgym::proto::MultiBinary::GetMetadata() const':
/home/ross/serpentine-env/src/protobuf/veinsgym.pb.cc:3231: undefined reference to `google::protobuf::internal::AssignDescriptors(google::protobuf::internal::DescriptorTable const* (*)(), std::once_flag*, google::protobuf::Metadata const&)'/usr/bin/ld: out/gcc-debug//protobuf/veinsgym.pb.o: in function `veinsgym::proto::MultiDiscrete::MultiDiscrete(google::protobuf::Arena*, bool)':
/home/ross/serpentine-env/src/protobuf/veinsgym.pb.cc:3243: undefined reference to `google::protobuf::RepeatedField<unsigned long>::RepeatedField(google::protobuf::Arena*)'
/usr/bin/ld: out/gcc-debug//protobuf/veinsgym.pb.o: in function `veinsgym::proto::MultiDiscrete::MultiDiscrete(veinsgym::proto::MultiDiscrete const&)':
/home/ross/serpentine-env/src/protobuf/veinsgym.pb.cc:3252: undefined reference to `google::protobuf::RepeatedField<unsigned long>::RepeatedField(google::protobuf::RepeatedField<unsigned long> const&)'
/usr/bin/ld: out/gcc-debug//protobuf/veinsgym.pb.o: in function `veinsgym::proto::MultiDiscrete::Clear()':
/home/ross/serpentine-env/src/protobuf/veinsgym.pb.cc:3287: undefined reference to `google::protobuf::RepeatedField<unsigned long>::Clear()'
/usr/bin/ld: out/gcc-debug//protobuf/veinsgym.pb.o: in function `veinsgym::proto::MultiDiscrete::_InternalParse(char const*, google::protobuf::internal::ParseContext*)':
/home/ross/serpentine-env/src/protobuf/veinsgym.pb.cc:3300: undefined reference to `google::protobuf::internal::PackedUInt64Parser(void*, char const*, google::protobuf::internal::ParseContext*)'
/usr/bin/ld: /home/ross/serpentine-env/src/protobuf/veinsgym.pb.cc:3317: undefined reference to `google::protobuf::internal::UnknownFieldParse(unsigned long, google::protobuf::UnknownFieldSet*, char const*, google::protobuf::internal::ParseContext*)'
/usr/bin/ld: out/gcc-debug//protobuf/veinsgym.pb.o: in function `unsigned char* google::protobuf::io::EpsCopyOutputStream::WriteVarintPacked<google::protobuf::RepeatedField<unsigned long>, unsigned long (unsigned long)>(int, google::protobuf::RepeatedField<unsigned long> const&, int, unsigned char*, unsigned long ( const&)(unsigned long))':
/usr/local/include/google/protobuf/io/coded_stream.h:901: undefined reference to `google::protobuf::RepeatedField<unsigned long>::data() const'
/usr/bin/ld: /usr/local/include/google/protobuf/io/coded_stream.h:902: undefined reference to `google::protobuf::RepeatedField<unsigned long>::size() const'
/usr/bin/ld: out/gcc-debug//protobuf/veinsgym.pb.o: in function `veinsgym::proto::MultiDiscrete::_InternalSerialize(unsigned char*, google::protobuf::io::EpsCopyOutputStream*) const':
/home/ross/serpentine-env/src/protobuf/veinsgym.pb.cc:3347: undefined reference to `google::protobuf::internal::WireFormat::InternalSerializeUnknownFieldsToArray(google::protobuf::UnknownFieldSet const&, unsigned char*, google::protobuf::io::EpsCopyOutputStream*)'
/usr/bin/ld: out/gcc-debug//protobuf/veinsgym.pb.o: in function `veinsgym::proto::MultiDiscrete::ByteSizeLong() const':
/home/ross/serpentine-env/src/protobuf/veinsgym.pb.cc:3377: undefined reference to `google::protobuf::Message::MaybeComputeUnknownFieldsSize(unsigned long, google::protobuf::internal::CachedSize*) const'
/usr/bin/ld: out/gcc-debug//protobuf/veinsgym.pb.o: in function `veinsgym::proto::MultiDiscrete::GetMetadata() const':
/home/ross/serpentine-env/src/protobuf/veinsgym.pb.cc:3423: undefined reference to `google::protobuf::internal::AssignDescriptors(google::protobuf::internal::DescriptorTable const* (*)(), std::once_flag*, google::protobuf::Metadata const&)'/usr/bin/ld: out/gcc-debug//protobuf/veinsgym.pb.o: in function `veinsgym::proto::Tuple::_InternalParse(char const*, google::protobuf::internal::ParseContext*)':
/home/ross/serpentine-env/src/protobuf/veinsgym.pb.cc:3495: undefined reference to `google::protobuf::internal::ParseContext::ParseMessage(google::protobuf::MessageLite*, char const*)'
/usr/bin/ld: /home/ross/serpentine-env/src/protobuf/veinsgym.pb.cc:3511: undefined reference to `google::protobuf::internal::UnknownFieldParse(unsigned long, google::protobuf::UnknownFieldSet*, char const*, google::protobuf::internal::ParseContext*)'
/usr/bin/ld: out/gcc-debug//protobuf/veinsgym.pb.o: in function `veinsgym::proto::Tuple::_InternalSerialize(unsigned char*, google::protobuf::io::EpsCopyOutputStream*) const':
/home/ross/serpentine-env/src/protobuf/veinsgym.pb.cc:3540: undefined reference to `google::protobuf::internal::WireFormat::InternalSerializeUnknownFieldsToArray(google::protobuf::UnknownFieldSet const&, unsigned char*, google::protobuf::io::EpsCopyOutputStream*)'
/usr/bin/ld: out/gcc-debug//protobuf/veinsgym.pb.o: in function `veinsgym::proto::Tuple::ByteSizeLong() const':
/home/ross/serpentine-env/src/protobuf/veinsgym.pb.cc:3562: undefined reference to `google::protobuf::Message::MaybeComputeUnknownFieldsSize(unsigned long, google::protobuf::internal::CachedSize*) const'
/usr/bin/ld: out/gcc-debug//protobuf/veinsgym.pb.o: in function `veinsgym::proto::Tuple::GetMetadata() const':
/home/ross/serpentine-env/src/protobuf/veinsgym.pb.cc:3608: undefined reference to `google::protobuf::internal::AssignDescriptors(google::protobuf::internal::DescriptorTable const* (*)(), std::once_flag*, google::protobuf::Metadata const&)'/usr/bin/ld: out/gcc-debug//protobuf/veinsgym.pb.o: in function `__static_initialization_and_destruction_0(int, int)':
/home/ross/serpentine-env/src/protobuf/veinsgym.pb.cc:373: undefined reference to `google::protobuf::internal::AddDescriptorsRunner::AddDescriptorsRunner(google::protobuf::internal::DescriptorTable const*)'
/usr/bin/ld: out/gcc-debug//protobuf/veinsgym.pb.o: in function `google::protobuf::stringpiece_internal::StringPiece::CheckSize(unsigned long)':
/usr/local/include/google/protobuf/stubs/stringpiece.h:190: undefined reference to `google::protobuf::stringpiece_internal::StringPiece::LogFatalSizeTooBig(unsigned long, char const*)'
/usr/bin/ld: out/gcc-debug//protobuf/veinsgym.pb.o: in function `google::protobuf::io::EpsCopyOutputStream::EnsureSpace(unsigned char*)':
/usr/local/include/google/protobuf/io/coded_stream.h:697: undefined reference to `google::protobuf::io::EpsCopyOutputStream::EnsureSpaceFallback(unsigned char*)'
/usr/bin/ld: out/gcc-debug//protobuf/veinsgym.pb.o: in function `google::protobuf::io::EpsCopyOutputStream::WriteRaw(void const*, int, unsigned char*)':
/usr/local/include/google/protobuf/io/coded_stream.h:704: undefined reference to `google::protobuf::io::EpsCopyOutputStream::WriteRawFallback(void const*, int, unsigned char*)'
/usr/bin/ld: out/gcc-debug//protobuf/veinsgym.pb.o: in function `google::protobuf::io::EpsCopyOutputStream::WriteStringMaybeAliased(unsigned int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned char*)':
/usr/local/include/google/protobuf/io/coded_stream.h:733: undefined reference to `google::protobuf::io::EpsCopyOutputStream::WriteStringMaybeAliasedOutline(unsigned int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned char*)'
/usr/bin/ld: out/gcc-debug//protobuf/veinsgym.pb.o: in function `google::protobuf::io::CodedOutputStream::WriteVarint32ToArrayOutOfLine(unsigned int, unsigned char*)':
/usr/local/include/google/protobuf/io/coded_stream.h:1634: undefined reference to `google::protobuf::io::CodedOutputStream::WriteVarint32ToArrayOutOfLineHelper(unsigned int, unsigned char*)'
/usr/bin/ld: out/gcc-debug//protobuf/veinsgym.pb.o: in function `google::protobuf::Arena::~Arena()':
/usr/local/include/google/protobuf/arena.h:272: undefined reference to `google::protobuf::internal::ThreadSafeArena::~ThreadSafeArena()'
/usr/bin/ld: out/gcc-debug//protobuf/veinsgym.pb.o: in function `google::protobuf::Arena::SpaceAllocated() const':
/usr/local/include/google/protobuf/arena.h:347: undefined reference to `google::protobuf::internal::ThreadSafeArena::SpaceAllocated() const'
/usr/bin/ld: out/gcc-debug//protobuf/veinsgym.pb.o: in function `google::protobuf::Arena::AllocateInternal(unsigned long, unsigned long, void (*)(void*), std::type_info const*)':
/usr/local/include/google/protobuf/arena.h:575: undefined reference to `google::protobuf::Arena::AllocateAlignedWithCleanup(unsigned long, std::type_info const*)'
/usr/bin/ld: /usr/local/include/google/protobuf/arena.h:580: undefined reference to `google::protobuf::Arena::AllocateAlignedWithCleanup(unsigned long, std::type_info const*)'
/usr/bin/ld: out/gcc-debug//protobuf/veinsgym.pb.o: in function `google::protobuf::Arena::AllocateAlignedWithHook(unsigned long, unsigned long, std::type_info const*)':
/usr/local/include/google/protobuf/arena.h:785: undefined reference to `google::protobuf::Arena::AllocateAlignedWithHook(unsigned long, std::type_info const*)'
/usr/bin/ld: /usr/local/include/google/protobuf/arena.h:792: undefined reference to `google::protobuf::Arena::AllocateAlignedWithHook(unsigned long, std::type_info const*)'
/usr/bin/ld: out/gcc-debug//protobuf/veinsgym.pb.o: in function `google::protobuf::internal::ArenaStringPtr::DestroyNoArena(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const*)':
/usr/local/include/google/protobuf/arenastring.h:403: undefined reference to `google::protobuf::internal::ArenaStringPtr::DestroyNoArenaSlowPath()'
/usr/bin/ld: out/gcc-debug//protobuf/veinsgym.pb.o: in function `google::protobuf::internal::EpsCopyInputStream::DoneWithCheck(char const**, int)':
/usr/local/include/google/protobuf/parse_context.h:223: undefined reference to `google::protobuf::internal::EpsCopyInputStream::DoneFallback(int, int)'
/usr/bin/ld: out/gcc-debug//protobuf/veinsgym.pb.o: in function `google::protobuf::internal::VarintParseSlow(char const*, unsigned int, unsigned long*)':
/usr/local/include/google/protobuf/parse_context.h:521: undefined reference to `google::protobuf::internal::VarintParseSlow64(char const*, unsigned int)'
/usr/bin/ld: out/gcc-debug//protobuf/veinsgym.pb.o: in function `google::protobuf::internal::ReadTag(char const*, unsigned int*, unsigned int)':
/usr/local/include/google/protobuf/parse_context.h:563: undefined reference to `google::protobuf::internal::ReadTagFallback(char const*, unsigned int)'
/usr/bin/ld: out/gcc-debug//protobuf/veinsgym.pb.o: in function `google::protobuf::internal::VerifyUTF8(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const*, char const*)':
/usr/local/include/google/protobuf/parse_context.h:786: undefined reference to `google::protobuf::internal::VerifyUTF8(google::protobuf::stringpiece_internal::StringPiece, char const*)'
/usr/bin/ld: out/gcc-debug//protobuf/veinsgym.pb.o: in function `google::protobuf::internal::ZeroFieldsBase::ZeroFieldsBase()':
/usr/local/include/google/protobuf/generated_message_bases.h:65: undefined reference to `vtable for google::protobuf::internal::ZeroFieldsBase'
/usr/bin/ld: out/gcc-debug//protobuf/veinsgym.pb.o: in function `google::protobuf::internal::ZeroFieldsBase::ZeroFieldsBase(google::protobuf::Arena*, bool)':
/usr/local/include/google/protobuf/generated_message_bases.h:67: undefined reference to `vtable for google::protobuf::internal::ZeroFieldsBase'
/usr/bin/ld: out/gcc-debug//protobuf/veinsgym.pb.o: in function `veinsgym::proto::Shutdown::MergeFrom(veinsgym::proto::Shutdown const&)':
/home/ross/serpentine-env/src/protobuf/veinsgym.pb.h:839: undefined reference to `google::protobuf::internal::ZeroFieldsBase::MergeImpl(google::protobuf::Message*, google::protobuf::Message const&)'
/usr/bin/ld: out/gcc-debug//protobuf/veinsgym.pb.o: in function `veinsgym::proto::Init::_internal_mutable_action_space_code[abi:cxx11]()':
/home/ross/serpentine-env/src/protobuf/veinsgym.pb.h:2987: undefined reference to `google::protobuf::internal::ArenaStringPtr::Mutable[abi:cxx11](google::protobuf::internal::ArenaStringPtr::EmptyDefault, google::protobuf::Arena*)'
/usr/bin/ld: out/gcc-debug//protobuf/veinsgym.pb.o: in function `veinsgym::proto::Init::_internal_mutable_observation_space_code[abi:cxx11]()':
/home/ross/serpentine-env/src/protobuf/veinsgym.pb.h:3038: undefined reference to `google::protobuf::internal::ArenaStringPtr::Mutable[abi:cxx11](google::protobuf::internal::ArenaStringPtr::EmptyDefault, google::protobuf::Arena*)'
/usr/bin/ld: out/gcc-debug//protobuf/veinsgym.pb.o: in function `veinsgym::proto::Init::_internal_mutable_reward_space_code[abi:cxx11]()':
/home/ross/serpentine-env/src/protobuf/veinsgym.pb.h:3089: undefined reference to `google::protobuf::internal::ArenaStringPtr::Mutable[abi:cxx11](google::protobuf::internal::ArenaStringPtr::EmptyDefault, google::protobuf::Arena*)'
/usr/bin/ld: out/gcc-debug//protobuf/veinsgym.pb.o: in function `veinsgym::proto::Box::_internal_values_size() const':
/home/ross/serpentine-env/src/protobuf/veinsgym.pb.h:3762: undefined reference to `google::protobuf::RepeatedField<double>::size() const'
/usr/bin/ld: out/gcc-debug//protobuf/veinsgym.pb.o: in function `veinsgym::proto::Box::_internal_add_values(double)':
/home/ross/serpentine-env/src/protobuf/veinsgym.pb.h:3782: undefined reference to `google::protobuf::RepeatedField<double>::Add(double const&)'
/usr/bin/ld: out/gcc-debug//protobuf/veinsgym.pb.o: in function `veinsgym::proto::Dict_Item::_internal_mutable_key[abi:cxx11]()':
/home/ross/serpentine-env/src/protobuf/veinsgym.pb.h:3840: undefined reference to `google::protobuf::internal::ArenaStringPtr::Mutable[abi:cxx11](google::protobuf::internal::ArenaStringPtr::EmptyDefault, google::protobuf::Arena*)'
/usr/bin/ld: out/gcc-debug//protobuf/veinsgym.pb.o: in function `veinsgym::proto::MultiBinary::_internal_values_size() const':
/home/ross/serpentine-env/src/protobuf/veinsgym.pb.h:4026: undefined reference to `google::protobuf::RepeatedField<bool>::size() const'
/usr/bin/ld: out/gcc-debug//protobuf/veinsgym.pb.o: in function `veinsgym::proto::MultiBinary::_internal_add_values(bool)':
/home/ross/serpentine-env/src/protobuf/veinsgym.pb.h:4046: undefined reference to `google::protobuf::RepeatedField<bool>::Add(bool const&)'
/usr/bin/ld: out/gcc-debug//protobuf/veinsgym.pb.o:(.data.rel.ro+0x70): undefined reference to `google::protobuf::Message::CopyWithSizeCheck(google::protobuf::Message*, google::protobuf::Message const&)'
/usr/bin/ld: out/gcc-debug//protobuf/veinsgym.pb.o:(.data.rel.ro+0x80): undefined reference to `google::protobuf::Message::CopyWithSizeCheck(google::protobuf::Message*, google::protobuf::Message const&)'
/usr/bin/ld: out/gcc-debug//protobuf/veinsgym.pb.o:(.data.rel.ro+0x90): undefined reference to `google::protobuf::Message::CopyWithSizeCheck(google::protobuf::Message*, google::protobuf::Message const&)'
/usr/bin/ld: out/gcc-debug//protobuf/veinsgym.pb.o:(.data.rel.ro+0xa0): undefined reference to `google::protobuf::internal::ZeroFieldsBase::CopyImpl(google::protobuf::Message*, google::protobuf::Message const&)'
/usr/bin/ld: out/gcc-debug//protobuf/veinsgym.pb.o:(.data.rel.ro+0xa8): undefined reference to `google::protobuf::internal::ZeroFieldsBase::MergeImpl(google::protobuf::Message*, google::protobuf::Message const&)'
/usr/bin/ld: out/gcc-debug//protobuf/veinsgym.pb.o:(.data.rel.ro+0xb0): undefined reference to `google::protobuf::Message::CopyWithSizeCheck(google::protobuf::Message*, google::protobuf::Message const&)'
/usr/bin/ld: out/gcc-debug//protobuf/veinsgym.pb.o:(.data.rel.ro+0xc0): undefined reference to `google::protobuf::Message::CopyWithSizeCheck(google::protobuf::Message*, google::protobuf::Message const&)'
/usr/bin/ld: out/gcc-debug//protobuf/veinsgym.pb.o:(.data.rel.ro+0xd0): undefined reference to `google::protobuf::Message::CopyWithSizeCheck(google::protobuf::Message*, google::protobuf::Message const&)'
/usr/bin/ld: out/gcc-debug//protobuf/veinsgym.pb.o:(.data.rel.ro+0xe0): undefined reference to `google::protobuf::Message::CopyWithSizeCheck(google::protobuf::Message*, google::protobuf::Message const&)'
/usr/bin/ld: out/gcc-debug//protobuf/veinsgym.pb.o:(.data.rel.ro+0xf0): undefined reference to `google::protobuf::Message::CopyWithSizeCheck(google::protobuf::Message*, google::protobuf::Message const&)'
/usr/bin/ld: out/gcc-debug//protobuf/veinsgym.pb.o:(.data.rel.ro+0x100): more undefined references to `google::protobuf::Message::CopyWithSizeCheck(google::protobuf::Message*, google::protobuf::Message const&)' follow
/usr/bin/ld: out/gcc-debug//protobuf/veinsgym.pb.o: in function `google::protobuf::RepeatedPtrField<veinsgym::proto::Dict_Item>::~RepeatedPtrField()':
/usr/local/include/google/protobuf/repeated_ptr_field.h:1266: undefined reference to `google::protobuf::internal::RepeatedPtrFieldBase::DestroyProtos()'
/usr/bin/ld: out/gcc-debug//protobuf/veinsgym.pb.o: in function `google::protobuf::RepeatedPtrField<veinsgym::proto::Space>::~RepeatedPtrField()':
/usr/local/include/google/protobuf/repeated_ptr_field.h:1266: undefined reference to `google::protobuf::internal::RepeatedPtrFieldBase::DestroyProtos()'
/usr/bin/ld: out/gcc-debug//protobuf/veinsgym.pb.o: in function `unsigned char* google::protobuf::internal::WireFormatLite::InternalWriteMessage<veinsgym::proto::Shutdown>(int, veinsgym::proto::Shutdown const&, unsigned char*, google::protobuf::io::EpsCopyOutputStream*)':
/usr/local/include/google/protobuf/wire_format_lite.h:1724: undefined reference to `google::protobuf::internal::ZeroFieldsBase::_InternalSerialize(unsigned char*, google::protobuf::io::EpsCopyOutputStream*) const'
/usr/bin/ld: out/gcc-debug//protobuf/veinsgym.pb.o: in function `unsigned long google::protobuf::internal::WireFormatLite::MessageSize<veinsgym::proto::Shutdown>(veinsgym::proto::Shutdown const&)':
/usr/local/include/google/protobuf/wire_format_lite.h:1812: undefined reference to `google::protobuf::internal::ZeroFieldsBase::ByteSizeLong() const'
/usr/bin/ld: out/gcc-debug//protobuf/veinsgym.pb.o: in function `google::protobuf::RepeatedPtrField<veinsgym::proto::Dict_Item>::TypeHandler::Type* google::protobuf::internal::RepeatedPtrFieldBase::Add<google::protobuf::RepeatedPtrField<veinsgym::proto::Dict_Item>::TypeHandler>(google::protobuf::RepeatedPtrField<veinsgym::proto::Dict_Item>::TypeHandler::Type*)':
/usr/local/include/google/protobuf/repeated_ptr_field.h:897: undefined reference to `google::protobuf::internal::RepeatedPtrFieldBase::AddOutOfLineHelper(void*)'
/usr/bin/ld: out/gcc-debug//protobuf/veinsgym.pb.o: in function `google::protobuf::RepeatedPtrField<veinsgym::proto::Space>::TypeHandler::Type* google::protobuf::internal::RepeatedPtrFieldBase::Add<google::protobuf::RepeatedPtrField<veinsgym::proto::Space>::TypeHandler>(google::protobuf::RepeatedPtrField<veinsgym::proto::Space>::TypeHandler::Type*)':
/usr/local/include/google/protobuf/repeated_ptr_field.h:897: undefined reference to `google::protobuf::internal::RepeatedPtrFieldBase::AddOutOfLineHelper(void*)'
/usr/bin/ld: out/gcc-debug//protobuf/veinsgym.pb.o:(.data.rel.ro._ZTVN8veinsgym5proto8ShutdownE[_ZTVN8veinsgym5proto8ShutdownE]+0x30): undefined reference to `google::protobuf::internal::ZeroFieldsBase::Clear()'
/usr/bin/ld: out/gcc-debug//protobuf/veinsgym.pb.o:(.data.rel.ro._ZTVN8veinsgym5proto8ShutdownE[_ZTVN8veinsgym5proto8ShutdownE]+0x50): undefined reference to `google::protobuf::internal::ZeroFieldsBase::ByteSizeLong() const'
/usr/bin/ld: out/gcc-debug//protobuf/veinsgym.pb.o:(.data.rel.ro._ZTVN8veinsgym5proto8ShutdownE[_ZTVN8veinsgym5proto8ShutdownE]+0x60): undefined reference to `google::protobuf::internal::ZeroFieldsBase::_InternalParse(char const*, google::protobuf::internal::ParseContext*)'
/usr/bin/ld: out/gcc-debug//protobuf/veinsgym.pb.o:(.data.rel.ro._ZTVN8veinsgym5proto8ShutdownE[_ZTVN8veinsgym5proto8ShutdownE]+0x68): undefined reference to `google::protobuf::internal::ZeroFieldsBase::_InternalSerialize(unsigned char*, google::protobuf::io::EpsCopyOutputStream*) const'
/usr/bin/ld: out/gcc-debug//protobuf/veinsgym.pb.o:(.data.rel.ro._ZTIN8veinsgym5proto8ShutdownE[_ZTIN8veinsgym5proto8ShutdownE]+0x10): undefined reference to `typeinfo for google::protobuf::internal::ZeroFieldsBase'
/usr/bin/ld: out/gcc-debug//protobuf/veinsgym.pb.o: in function `veinsgym::proto::Shutdown::~Shutdown()':
/home/ross/serpentine-env/src/protobuf/veinsgym.pb.h:757: undefined reference to `google::protobuf::internal::ZeroFieldsBase::~ZeroFieldsBase()'
/usr/bin/ld: out/gcc-debug//serpentine/GymSplitter.o: in function `GymSplitter::serializeObservation(std::array<double, 4ul> const&, double) const':
/home/ross/serpentine-env/src/serpentine/GymSplitter.cc:130: undefined reference to `google::protobuf::RepeatedField<double>::operator=(google::protobuf::RepeatedField<double>&&)'
/usr/bin/ld: /home/ross/serpentine-env/src/serpentine/GymSplitter.cc:131: undefined reference to `google::protobuf::RepeatedField<double>::Add()'
/usr/bin/ld: out/gcc-debug//serpentine/GymSplitter.o: in function `veinsgym::proto::Shutdown::operator=(veinsgym::proto::Shutdown&&)':
/home/ross/serpentine-env/src/./protobuf/veinsgym.pb.h:780: undefined reference to `google::protobuf::internal::ZeroFieldsBase::InternalSwap(google::protobuf::internal::ZeroFieldsBase*)'
/usr/bin/ld: out/gcc-debug//serpentine/GymSplitter.o: in function `veinsgym::proto::Shutdown::CopyFrom(veinsgym::proto::Shutdown const&)':
/home/ross/serpentine-env/src/./protobuf/veinsgym.pb.h:835: undefined reference to `google::protobuf::internal::ZeroFieldsBase::CopyImpl(google::protobuf::Message*, google::protobuf::Message const&)'
/usr/bin/ld: out/gcc-debug//serpentine/GymSplitter.o: in function `veinsgym::proto::Box::set_values(int, double)':
/home/ross/serpentine-env/src/./protobuf/veinsgym.pb.h:3778: undefined reference to `google::protobuf::RepeatedField<double>::Set(int, double const&)'
/usr/bin/ld: out/gcc-debug//serpentine/GymSplitter.o: in function `void google::protobuf::RepeatedField<double>::Add<double const*>(double const*, double const*)':
/usr/local/include/google/protobuf/repeated_field.h:705: undefined reference to `google::protobuf::RepeatedField<double>::size() const'
/usr/bin/ld: /usr/local/include/google/protobuf/repeated_field.h:712: undefined reference to `google::protobuf::RepeatedField<double>::elements() const'
/usr/bin/ld: /usr/local/include/google/protobuf/repeated_field.h:712: undefined reference to `google::protobuf::RepeatedField<double>::size() const'
/usr/bin/ld: /usr/local/include/google/protobuf/repeated_field.h:713: undefined reference to `google::protobuf::RepeatedField<double>::size() const'
/usr/bin/ld: out/gcc-debug//serpentine/GymSplitter.o: in function `google::protobuf::RepeatedField<double>::FastAdderImpl<0, true>::FastAdderImpl(google::protobuf::RepeatedField<double>*)':
/usr/local/include/google/protobuf/repeated_field.h:448: undefined reference to `google::protobuf::RepeatedField<double>::unsafe_elements() const'
/usr/bin/ld: out/gcc-debug//serpentine/GymSplitter.o: in function `google::protobuf::RepeatedField<double>::FastAdderImpl<0, true>::Add(double)':
/usr/local/include/google/protobuf/repeated_field.h:457: undefined reference to `google::protobuf::RepeatedField<double>::unsafe_elements() const'
collect2: error: ld returned 1 exit status
make: *** [Makefile:98: out/gcc-debug//experiment_dbg] Error 1
make: Leaving directory '/home/ross/serpentine-env/src'
[Wed Jan 5 00:23:31 2022]
Error in rule build:
jobid: 1
output: src/experiment_dbg
shell:
make -j8 -C src MODE=debug
(one of the commands exited with non-zero exit code; note that snakemake uses bash strict mode!)
Shutting down, this might take some time.
Exiting because a job execution failed. Look above for error message
It seems to me that maybe it is the problem with the linker or with protobuf version. My protobuf version is libprotoc 3.19.1
Could you please give me some hints on how could I circumvent the issue?
Thank you!
I would like to send post this message as a reminder, because I am afraid that my message got lost
Eventually, I have solved it by removing protobuf that I have installed manually (which had a version libprotoc 3.19.2
) and running sudo apt-get install protobuf-compiler
, which for me had a version libprotoc 3.6.1
. I am not sure whether the problem was in the version conflict or in some mistake during installation.
Hy @RostyslavUA, sorry for the late response.
I also assume the issue is due to a mismatch of the generated protobuf-C++-files and the version of libprotoc
installed when linking. For future readers, I also suggest to
- check/update the installation of
protobuf-compiler
andlibprotoc
on your system (package names may differ based on the Linux distribution) - remove the generated
src/protobuf/veinsgym.pb.h
andsrc/protobuf/veinsgym.pb.cc
files - re-generate the protobuf-files by running
snakemake src/protobuf/veinsgym.pb.cc src/protobuf/veinsgym.pb.h
Hopefully, that helps.
Thank you @dbuse.
Hi,
I followed these instructions but I still got the problem. It seemed like the protobuf library is not linked correctly, and finally I figured out, that it is due to the Snakefile:
link_flags = ' '.join(['-L../lib/veins/src/', '-lveins\\$\(D\)', '-L../lib/veins-vlc/src/', '-lveins-vlc\\$\(D\)', '-lzmq', '-lprotobuf']),
The last one -lprotobuf
seems not working for the latest Protobuf, so I added another one -lpthread
and it works!
And you will get a new Makefile, or you can generate one with the following command:
opp_makemake -f --deep -o experiment -O out -I -I../lib/veins/src -I../libveins-vlc/src -I../lib/zmq/src -L../lib/veins/src/ -lveins -L../lib/veins-vlc/src/ -lveins-vlc -lzmq -lprotobuf -lpthread -e cpp
Hope this will help for others.
BR
Hy @RostyslavUA, sorry for the late response.
I also assume the issue is due to a mismatch of the generated protobuf-C++-files and the version of
libprotoc
installed when linking. For future readers, I also suggest to
- check/update the installation of
protobuf-compiler
andlibprotoc
on your system (package names may differ based on the Linux distribution)- remove the generated
src/protobuf/veinsgym.pb.h
andsrc/protobuf/veinsgym.pb.cc
files- re-generate the protobuf-files by running
snakemake src/protobuf/veinsgym.pb.cc src/protobuf/veinsgym.pb.h
Hopefully, that helps.
Hi, I was hoping you could ask some questions about veins_gym.
Maybe I am not familiar with veins_gym and your example, so some questions may not be quite correct.
I can run the case you provided according to your method. By running python files, however, there is only one result to the whole process. Can it see the detailed process through omnet++ emulation? Can it compile the entire file through omnet++ instead of snakemake?