byu-magicc / vtol-AirSim

A fork (copy) of AirSim's Unreal Engine Plugin with added functionality for VTOL aircraft.
12 stars 4 forks source link

undefined symbol: msr::airlib #20

Open hseysen opened 2 years ago

hseysen commented 2 years ago

I'm running a fresh installation of Ubuntu 20.04 on VMWare and have installed Unreal Engine 4.25.4. Followed the instructions in README.md, and all goes well until I build AirSim and Blocks projects. Here's the part of the log file that is relevant:

Building BlocksEditor...
Performing 6 actions (4 in parallel)
[1/6] Compile Module.AirSim.cpp
[2/6] Compile Module.AirSim.gen.cpp
[3/6] Compile Blocks.cpp
[4/6] Link (lld) libUE4Editor-AirSim.so
ld.lld: error: undefined symbol: msr::airlib::VtolRpcLibServer::VtolRpcLibServer(msr::airlib::ApiProvider*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, unsigned short)
>>> referenced by SimModeWorldTiltrotor.cpp:85 (/home/seysen/gitcl/AirSim/Unreal/Environments/Blocks/Plugins/AirSim/Source/Vehicles/Tiltrotor/SimModeWorldTiltrotor.cpp:85)
>>>               /home/seysen/gitcl/AirSim/Unreal/Environments/Blocks/Plugins/AirSim/Intermediate/Build/Linux/B4D820EA/UE4Editor/Development/AirSim/Module.AirSim.cpp.o:(ASimModeWorldTiltrotor::createApiServer() const)

ld.lld: error: undefined symbol: vtable for msr::airlib::VtolApiBase
>>> referenced by VtolApiBase.hpp:25 (/home/seysen/gitcl/AirSim/Unreal/Environments/Blocks/Plugins/AirSim/Source/AirLib/include/vehicles/vtol/api/VtolApiBase.hpp:25)
>>>               /home/seysen/gitcl/AirSim/Unreal/Environments/Blocks/Plugins/AirSim/Intermediate/Build/Linux/B4D820EA/UE4Editor/Development/AirSim/Module.AirSim.cpp.o:(msr::airlib::VtolApiBase::VtolApiBase())
>>> referenced by VtolApiBase.hpp:91 (/home/seysen/gitcl/AirSim/Unreal/Environments/Blocks/Plugins/AirSim/Source/AirLib/include/vehicles/vtol/api/VtolApiBase.hpp:91)
>>>               /home/seysen/gitcl/AirSim/Unreal/Environments/Blocks/Plugins/AirSim/Intermediate/Build/Linux/B4D820EA/UE4Editor/Development/AirSim/Module.AirSim.cpp.o:(msr::airlib::VtolApiBase::~VtolApiBase())
the vtable symbol may be undefined because the class is missing its key function (see https://lld.llvm.org/missingkeyfunction)

ld.lld: error: undefined symbol: msr::airlib::VtolApiBase::resetImplementation()
>>> referenced by MavLinkVtolApi.hpp:115 (/home/seysen/gitcl/AirSim/Unreal/Environments/Blocks/Plugins/AirSim/Source/AirLib/include/vehicles/vtol/firmwares/mavlink/MavLinkVtolApi.hpp:115)
>>>               /home/seysen/gitcl/AirSim/Unreal/Environments/Blocks/Plugins/AirSim/Intermediate/Build/Linux/B4D820EA/UE4Editor/Development/AirSim/Module.AirSim.cpp.o:(msr::airlib::MavLinkVtolApi::resetImplementation())
>>> referenced by VtolSimpleApi.hpp:52 (/home/seysen/gitcl/AirSim/Unreal/Environments/Blocks/Plugins/AirSim/Source/AirLib/include/vehicles/vtol/firmwares/vtol_simple/VtolSimpleApi.hpp:52)
>>>               /home/seysen/gitcl/AirSim/Unreal/Environments/Blocks/Plugins/AirSim/Intermediate/Build/Linux/B4D820EA/UE4Editor/Development/AirSim/Module.AirSim.cpp.o:(msr::airlib::VtolSimpleApi::resetImplementation())

ld.lld: error: undefined symbol: msr::airlib::VtolApiBase::waitForZ(float, float, float)
>>> referenced by MavLinkVtolApi.hpp:473 (/home/seysen/gitcl/AirSim/Unreal/Environments/Blocks/Plugins/AirSim/Source/AirLib/include/vehicles/vtol/firmwares/mavlink/MavLinkVtolApi.hpp:473)
>>>               /home/seysen/gitcl/AirSim/Unreal/Environments/Blocks/Plugins/AirSim/Intermediate/Build/Linux/B4D820EA/UE4Editor/Development/AirSim/Module.AirSim.cpp.o:(msr::airlib::MavLinkVtolApi::takeoff(float))

ld.lld: error: undefined symbol: msr::airlib::VtolApiBase::waitForFunction(std::__1::function<bool ()>, float)
>>> referenced by MavLinkVtolApi.hpp:497 (/home/seysen/gitcl/AirSim/Unreal/Environments/Blocks/Plugins/AirSim/Source/AirLib/include/vehicles/vtol/firmwares/mavlink/MavLinkVtolApi.hpp:497)
>>>               /home/seysen/gitcl/AirSim/Unreal/Environments/Blocks/Plugins/AirSim/Intermediate/Build/Linux/B4D820EA/UE4Editor/Development/AirSim/Module.AirSim.cpp.o:(msr::airlib::MavLinkVtolApi::land(float))
>>> referenced by MavLinkVtolApi.hpp:425 (/home/seysen/gitcl/AirSim/Unreal/Environments/Blocks/Plugins/AirSim/Source/AirLib/include/vehicles/vtol/firmwares/mavlink/MavLinkVtolApi.hpp:425)
>>>               /home/seysen/gitcl/AirSim/Unreal/Environments/Blocks/Plugins/AirSim/Intermediate/Build/Linux/B4D820EA/UE4Editor/Development/AirSim/Module.AirSim.cpp.o:(msr::airlib::MavLinkVtolApi::waitForHomeLocation(float))
>>> referenced by MavLinkVtolApi.hpp:440 (/home/seysen/gitcl/AirSim/Unreal/Environments/Blocks/Plugins/AirSim/Source/AirLib/include/vehicles/vtol/firmwares/mavlink/MavLinkVtolApi.hpp:440)
>>>               /home/seysen/gitcl/AirSim/Unreal/Environments/Blocks/Plugins/AirSim/Intermediate/Build/Linux/B4D820EA/UE4Editor/Development/AirSim/Module.AirSim.cpp.o:(msr::airlib::MavLinkVtolApi::waitForStableGroundPosition(float))

ld.lld: error: undefined symbol: msr::airlib::VtolApiBase::getAutoLookahead(float, float, float, float) const
>>> referenced by Module.AirSim.cpp
>>>               /home/seysen/gitcl/AirSim/Unreal/Environments/Blocks/Plugins/AirSim/Intermediate/Build/Linux/B4D820EA/UE4Editor/Development/AirSim/Module.AirSim.cpp.o:(vtable for msr::airlib::MavLinkVtolApi)
>>> referenced by Module.AirSim.cpp
>>>               /home/seysen/gitcl/AirSim/Unreal/Environments/Blocks/Plugins/AirSim/Intermediate/Build/Linux/B4D820EA/UE4Editor/Development/AirSim/Module.AirSim.cpp.o:(vtable for msr::airlib::VtolSimpleApi)

ld.lld: error: undefined symbol: msr::airlib::VtolApiBase::getObsAvoidanceVelocity(float, float) const
>>> referenced by Module.AirSim.cpp
>>>               /home/seysen/gitcl/AirSim/Unreal/Environments/Blocks/Plugins/AirSim/Intermediate/Build/Linux/B4D820EA/UE4Editor/Development/AirSim/Module.AirSim.cpp.o:(vtable for msr::airlib::MavLinkVtolApi)
>>> referenced by Module.AirSim.cpp
>>>               /home/seysen/gitcl/AirSim/Unreal/Environments/Blocks/Plugins/AirSim/Intermediate/Build/Linux/B4D820EA/UE4Editor/Development/AirSim/Module.AirSim.cpp.o:(vtable for msr::airlib::VtolSimpleApi)

ld.lld: error: undefined symbol: msr::airlib::VtolApiBase::moveByRC(msr::airlib::RCData const&)
>>> referenced by Module.AirSim.cpp
>>>               /home/seysen/gitcl/AirSim/Unreal/Environments/Blocks/Plugins/AirSim/Intermediate/Build/Linux/B4D820EA/UE4Editor/Development/AirSim/Module.AirSim.cpp.o:(vtable for msr::airlib::MavLinkVtolApi)

ld.lld: error: undefined symbol: msr::airlib::VtolApiBase::moveByVelocityBodyFrame(float, float, float, float, msr::airlib::DrivetrainType, msr::airlib::YawMode const&)
>>> referenced by Module.AirSim.cpp
>>>               /home/seysen/gitcl/AirSim/Unreal/Environments/Blocks/Plugins/AirSim/Intermediate/Build/Linux/B4D820EA/UE4Editor/Development/AirSim/Module.AirSim.cpp.o:(vtable for msr::airlib::MavLinkVtolApi)
>>> referenced by Module.AirSim.cpp
>>>               /home/seysen/gitcl/AirSim/Unreal/Environments/Blocks/Plugins/AirSim/Intermediate/Build/Linux/B4D820EA/UE4Editor/Development/AirSim/Module.AirSim.cpp.o:(vtable for msr::airlib::VtolSimpleApi)

ld.lld: error: undefined symbol: msr::airlib::VtolApiBase::moveByVelocityZBodyFrame(float, float, float, float, msr::airlib::DrivetrainType, msr::airlib::YawMode const&)
>>> referenced by Module.AirSim.cpp
>>>               /home/seysen/gitcl/AirSim/Unreal/Environments/Blocks/Plugins/AirSim/Intermediate/Build/Linux/B4D820EA/UE4Editor/Development/AirSim/Module.AirSim.cpp.o:(vtable for msr::airlib::MavLinkVtolApi)
>>> referenced by Module.AirSim.cpp
>>>               /home/seysen/gitcl/AirSim/Unreal/Environments/Blocks/Plugins/AirSim/Intermediate/Build/Linux/B4D820EA/UE4Editor/Development/AirSim/Module.AirSim.cpp.o:(vtable for msr::airlib::VtolSimpleApi)

ld.lld: error: undefined symbol: msr::airlib::VtolApiBase::moveByMotorPWMs(std::__1::vector<float, std::__1::allocator<float> > const&, float)
>>> referenced by Module.AirSim.cpp
>>>               /home/seysen/gitcl/AirSim/Unreal/Environments/Blocks/Plugins/AirSim/Intermediate/Build/Linux/B4D820EA/UE4Editor/Development/AirSim/Module.AirSim.cpp.o:(vtable for msr::airlib::MavLinkVtolApi)
>>> referenced by Module.AirSim.cpp
>>>               /home/seysen/gitcl/AirSim/Unreal/Environments/Blocks/Plugins/AirSim/Intermediate/Build/Linux/B4D820EA/UE4Editor/Development/AirSim/Module.AirSim.cpp.o:(vtable for msr::airlib::VtolSimpleApi)

ld.lld: error: undefined symbol: msr::airlib::VtolApiBase::moveByRollPitchYawZ(float, float, float, float, float)
>>> referenced by Module.AirSim.cpp
>>>               /home/seysen/gitcl/AirSim/Unreal/Environments/Blocks/Plugins/AirSim/Intermediate/Build/Linux/B4D820EA/UE4Editor/Development/AirSim/Module.AirSim.cpp.o:(vtable for msr::airlib::MavLinkVtolApi)
>>> referenced by Module.AirSim.cpp
>>>               /home/seysen/gitcl/AirSim/Unreal/Environments/Blocks/Plugins/AirSim/Intermediate/Build/Linux/B4D820EA/UE4Editor/Development/AirSim/Module.AirSim.cpp.o:(vtable for msr::airlib::VtolSimpleApi)

ld.lld: error: undefined symbol: msr::airlib::VtolApiBase::moveByRollPitchYawThrottle(float, float, float, float, float)
>>> referenced by Module.AirSim.cpp
>>>               /home/seysen/gitcl/AirSim/Unreal/Environments/Blocks/Plugins/AirSim/Intermediate/Build/Linux/B4D820EA/UE4Editor/Development/AirSim/Module.AirSim.cpp.o:(vtable for msr::airlib::MavLinkVtolApi)
>>> referenced by Module.AirSim.cpp
>>>               /home/seysen/gitcl/AirSim/Unreal/Environments/Blocks/Plugins/AirSim/Intermediate/Build/Linux/B4D820EA/UE4Editor/Development/AirSim/Module.AirSim.cpp.o:(vtable for msr::airlib::VtolSimpleApi)

ld.lld: error: undefined symbol: msr::airlib::VtolApiBase::moveByRollPitchYawrateThrottle(float, float, float, float, float)
>>> referenced by Module.AirSim.cpp
>>>               /home/seysen/gitcl/AirSim/Unreal/Environments/Blocks/Plugins/AirSim/Intermediate/Build/Linux/B4D820EA/UE4Editor/Development/AirSim/Module.AirSim.cpp.o:(vtable for msr::airlib::MavLinkVtolApi)
>>> referenced by Module.AirSim.cpp
>>>               /home/seysen/gitcl/AirSim/Unreal/Environments/Blocks/Plugins/AirSim/Intermediate/Build/Linux/B4D820EA/UE4Editor/Development/AirSim/Module.AirSim.cpp.o:(vtable for msr::airlib::VtolSimpleApi)

ld.lld: error: undefined symbol: msr::airlib::VtolApiBase::moveByRollPitchYawrateZ(float, float, float, float, float)
>>> referenced by Module.AirSim.cpp
>>>               /home/seysen/gitcl/AirSim/Unreal/Environments/Blocks/Plugins/AirSim/Intermediate/Build/Linux/B4D820EA/UE4Editor/Development/AirSim/Module.AirSim.cpp.o:(vtable for msr::airlib::MavLinkVtolApi)
>>> referenced by Module.AirSim.cpp
>>>               /home/seysen/gitcl/AirSim/Unreal/Environments/Blocks/Plugins/AirSim/Intermediate/Build/Linux/B4D820EA/UE4Editor/Development/AirSim/Module.AirSim.cpp.o:(vtable for msr::airlib::VtolSimpleApi)

ld.lld: error: undefined symbol: msr::airlib::VtolApiBase::moveByAngleRatesZ(float, float, float, float, float)
>>> referenced by Module.AirSim.cpp
>>>               /home/seysen/gitcl/AirSim/Unreal/Environments/Blocks/Plugins/AirSim/Intermediate/Build/Linux/B4D820EA/UE4Editor/Development/AirSim/Module.AirSim.cpp.o:(vtable for msr::airlib::MavLinkVtolApi)
>>> referenced by Module.AirSim.cpp
>>>               /home/seysen/gitcl/AirSim/Unreal/Environments/Blocks/Plugins/AirSim/Intermediate/Build/Linux/B4D820EA/UE4Editor/Development/AirSim/Module.AirSim.cpp.o:(vtable for msr::airlib::VtolSimpleApi)

ld.lld: error: undefined symbol: msr::airlib::VtolApiBase::moveByAngleRatesThrottle(float, float, float, float, float)
>>> referenced by Module.AirSim.cpp
>>>               /home/seysen/gitcl/AirSim/Unreal/Environments/Blocks/Plugins/AirSim/Intermediate/Build/Linux/B4D820EA/UE4Editor/Development/AirSim/Module.AirSim.cpp.o:(vtable for msr::airlib::MavLinkVtolApi)
>>> referenced by Module.AirSim.cpp
>>>               /home/seysen/gitcl/AirSim/Unreal/Environments/Blocks/Plugins/AirSim/Intermediate/Build/Linux/B4D820EA/UE4Editor/Development/AirSim/Module.AirSim.cpp.o:(vtable for msr::airlib::VtolSimpleApi)

ld.lld: error: undefined symbol: msr::airlib::VtolApiBase::moveByVelocity(float, float, float, float, msr::airlib::DrivetrainType, msr::airlib::YawMode const&)
>>> referenced by Module.AirSim.cpp
>>>               /home/seysen/gitcl/AirSim/Unreal/Environments/Blocks/Plugins/AirSim/Intermediate/Build/Linux/B4D820EA/UE4Editor/Development/AirSim/Module.AirSim.cpp.o:(vtable for msr::airlib::MavLinkVtolApi)
>>> referenced by Module.AirSim.cpp
>>>               /home/seysen/gitcl/AirSim/Unreal/Environments/Blocks/Plugins/AirSim/Intermediate/Build/Linux/B4D820EA/UE4Editor/Development/AirSim/Module.AirSim.cpp.o:(vtable for msr::airlib::VtolSimpleApi)

ld.lld: error: undefined symbol: msr::airlib::VtolApiBase::moveByVelocityZ(float, float, float, float, msr::airlib::DrivetrainType, msr::airlib::YawMode const&)
>>> referenced by Module.AirSim.cpp
>>>               /home/seysen/gitcl/AirSim/Unreal/Environments/Blocks/Plugins/AirSim/Intermediate/Build/Linux/B4D820EA/UE4Editor/Development/AirSim/Module.AirSim.cpp.o:(vtable for msr::airlib::MavLinkVtolApi)
>>> referenced by Module.AirSim.cpp
>>>               /home/seysen/gitcl/AirSim/Unreal/Environments/Blocks/Plugins/AirSim/Intermediate/Build/Linux/B4D820EA/UE4Editor/Development/AirSim/Module.AirSim.cpp.o:(vtable for msr::airlib::VtolSimpleApi)

ld.lld: error: undefined symbol: msr::airlib::VtolApiBase::moveOnPath(std::__1::vector<Eigen::Matrix<float, 3, 1, 0, 3, 1>, std::__1::allocator<Eigen::Matrix<float, 3, 1, 0, 3, 1> > > const&, float, float, msr::airlib::DrivetrainType, msr::airlib::YawMode const&, float, float)
>>> referenced by Module.AirSim.cpp
>>>               /home/seysen/gitcl/AirSim/Unreal/Environments/Blocks/Plugins/AirSim/Intermediate/Build/Linux/B4D820EA/UE4Editor/Development/AirSim/Module.AirSim.cpp.o:(vtable for msr::airlib::MavLinkVtolApi)
>>> referenced by Module.AirSim.cpp
>>>               /home/seysen/gitcl/AirSim/Unreal/Environments/Blocks/Plugins/AirSim/Intermediate/Build/Linux/B4D820EA/UE4Editor/Development/AirSim/Module.AirSim.cpp.o:(vtable for msr::airlib::VtolSimpleApi)

ld.lld: error: too many errors emitted, stopping now (use -error-limit=0 to see all errors)
clang++: error: linker command failed with exit code 1 (use -v to see invocation)
LogInit: Warning: Still incompatible or missing module: Blocks
LogInit: Warning: Still incompatible or missing module: AirSim
LogCore: Engine exit requested (reason: EngineExit() was called)
LogExit: Preparing to exit.
LogModuleManager: Shutting down and abandoning module DesktopPlatform (44)
LogModuleManager: Shutting down and abandoning module PlatformCryptoOpenSSL (42)
LogModuleManager: Shutting down and abandoning module PlatformCryptoTypes (40)
LogModuleManager: Shutting down and abandoning module PlatformCrypto (38)
LogModuleManager: Shutting down and abandoning module AnimationModifiers (36)
LogModuleManager: Shutting down and abandoning module PropertyEditor (35)
LogModuleManager: Shutting down and abandoning module AudioEditor (32)
LogModuleManager: Shutting down and abandoning module TextureCompressor (30)
LogModuleManager: Shutting down and abandoning module RenderCore (28)
LogModuleManager: Shutting down and abandoning module Landscape (26)
LogModuleManager: Shutting down and abandoning module SlateRHIRenderer (24)
LogModuleManager: Shutting down and abandoning module OpenGLDrv (22)
LogModuleManager: Shutting down and abandoning module AnimGraphRuntime (20)
LogModuleManager: Shutting down and abandoning module Renderer (18)
LogModuleManager: Shutting down and abandoning module Engine (16)
LogModuleManager: Shutting down and abandoning module CoreUObject (14)
LogModuleManager: Shutting down and abandoning module NetworkFile (12)
LogModuleManager: Shutting down and abandoning module CookedIterativeFile (10)
LogModuleManager: Shutting down and abandoning module StreamingFile (8)
LogModuleManager: Shutting down and abandoning module SandboxFile (6)
LogModuleManager: Shutting down and abandoning module PakFile (4)
LogModuleManager: Shutting down and abandoning module RSA (3)
LogExit: Exiting.
LogInit: Tearing down SDL.
Log file closed, 08/19/22 04:51:48

This error is related to msr::airlib and it basically does not recognize the symbols defined in the VTOL libs. However, I've already run build_static_libs.sh file without errors. How can I solve this error?

Edit: Also, I've merely copied the VTOL fork of the AirSim repo. Should I run the files setup.sh and build.sh according to the Microsoft's documentation? Or does the build_static_libs.sh handle all of these?

abdelhakim96 commented 1 year ago

I am facing the same issue

Lychannnn commented 1 year ago

sh

I'm also facing the same issue. is there any update?

ville-alex commented 1 year ago

Hi @hseysen @abdelhakim96 @Lychannnn did you find the cause of the problem?

thknx commented 1 year ago

I'm also facing this issue. Guys, did you find any solution? @Lychannnn @hseysen