Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Error in rule configure_veins_vlc, configure_veins, protobuf #1

Closed
RostyslavUA opened this issue Dec 18, 2021 · 10 comments
Closed

Error in rule configure_veins_vlc, configure_veins, protobuf #1

RostyslavUA opened this issue Dec 18, 2021 · 10 comments

Comments

@RostyslavUA
Copy link

RostyslavUA commented Dec 18, 2021

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!

@dbuse
Copy link
Contributor

dbuse commented Dec 20, 2021

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

@RostyslavUA
Copy link
Author

RostyslavUA commented Dec 20, 2021

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?

@dbuse
Copy link
Contributor

dbuse commented Dec 20, 2021

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.

@RostyslavUA
Copy link
Author

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!

@RostyslavUA
Copy link
Author

I would like to send post this message as a reminder, because I am afraid that my message got lost

@RostyslavUA
Copy link
Author

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.

@dbuse
Copy link
Contributor

dbuse commented Jan 12, 2022

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 and libprotoc on your system (package names may differ based on the Linux distribution)
  • remove the generated src/protobuf/veinsgym.pb.h and src/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.

@zaheenSyed
Copy link

Thank you @dbuse.

@anjackq
Copy link

anjackq commented Nov 17, 2022

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 and libprotoc on your system (package names may differ based on the Linux distribution)
  • remove the generated src/protobuf/veinsgym.pb.h and src/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.

@zjlyy
Copy link

zjlyy commented Mar 18, 2023

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?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants