microsoft / AirSim

Open source simulator for autonomous vehicles built on Unreal Engine / Unity, from Microsoft AI & Research
https://microsoft.github.io/AirSim/
Other
16.25k stars 4.52k forks source link

Package error in MacOS #1706

Open sreejithkrishnanr opened 5 years ago

sreejithkrishnanr commented 5 years ago

Hi, I am getting undefined symbol FIOSPlatformAffinity::GetNoAffinityMask() error when trying to package the blocks environment on MacOS using Unreal Engine 4.18.3 and Xcode 9.4. Running it inside unreal editor works fine.

UATHelper: Packaging (Mac): Running AutomationTool...
UATHelper: Packaging (Mac): Setting up Mono
UATHelper: Packaging (Mac): Start UAT: mono AutomationTool.exe -ScriptsForProject=/Users/sreejithkrishnanr/Robotics/tools/AirSim/Unreal/Environments/Blocks/Blocks.uproject BuildCookRun -nocompile -nocompileeditor -installed -nop4 -project=/Users/sreejithkrishnanr/Robotics/tools/AirSim/Unreal/Environments/Blocks/Blocks.uproject -cook -stage -archive -archived
irectory=/Volumes/UR/Blocks -package -clientconfig=Development -ue4exe=UE4Editor -clean -compressed -pak -prereqs -nodebuginfo -targetplatform=Mac -build -utf8output
UATHelper: Packaging (Mac): Parsing command line: -ScriptsForProject=/Users/sreejithkrishnanr/Robotics/tools/AirSim/Unreal/Environments/Blocks/Blocks.uproject BuildCookRun -nocompile -nocompileeditor -installed -nop4 -project=/Users/sreejithkrishnanr/Robotics/tools/AirSim/Unreal/Environments/Blocks/Blocks.uproject -cook -stage -archive -archivedirectory=/Vol
umes/UR/Blocks -package -clientconfig=Development -ue4exe=UE4Editor -clean -compressed -pak -prereqs -nodebuginfo -targetplatform=Mac -build -utf8output
UATHelper: Packaging (Mac): Setting up ProjectParams for /Users/sreejithkrishnanr/Robotics/tools/AirSim/Unreal/Environments/Blocks/Blocks.uproject
UATHelper: Packaging (Mac): ********** BUILD COMMAND STARTED **********
UATHelper: Packaging (Mac): Running: mono "/Volumes/UR/Epic Games/UE_4.18/Engine/Binaries/DotNET/UnrealBuildTool.exe" Blocks Mac Development -Project=/Users/sreejithkrishnanr/Robotics/tools/AirSim/Unreal/Environments/Blocks/Blocks.uproject -clean /Users/sreejithkrishnanr/Robotics/tools/AirSim/Unreal/Environments/Blocks/Blocks.uproject -NoUBTMakefiles  -remot
eini="/Users/sreejithkrishnanr/Robotics/tools/AirSim/Unreal/Environments/Blocks" -skipdeploy -nobuilduht -nocreatestub -NoHotReload
UATHelper: Packaging (Mac): Took 1.698663s to run mono, ExitCode=0
UATHelper: Packaging (Mac): Running: mono "/Volumes/UR/Epic Games/UE_4.18/Engine/Binaries/DotNET/UnrealBuildTool.exe" Blocks Mac Development -Project=/Users/sreejithkrishnanr/Robotics/tools/AirSim/Unreal/Environments/Blocks/Blocks.uproject  /Users/sreejithkrishnanr/Robotics/tools/AirSim/Unreal/Environments/Blocks/Blocks.uproject -NoUBTMakefiles  -remoteini="
/Users/sreejithkrishnanr/Robotics/tools/AirSim/Unreal/Environments/Blocks" -skipdeploy -flushmac -noxge -generatemanifest -nocreatestub -NoHotReload -ignorejunk
UATHelper: Packaging (Mac): Took 2.729641s to run mono, ExitCode=0
UATHelper: Packaging (Mac): Running: mono "/Volumes/UR/Epic Games/UE_4.18/Engine/Binaries/DotNET/UnrealBuildTool.exe" Blocks Mac Development -Project=/Users/sreejithkrishnanr/Robotics/tools/AirSim/Unreal/Environments/Blocks/Blocks.uproject  /Users/sreejithkrishnanr/Robotics/tools/AirSim/Unreal/Environments/Blocks/Blocks.uproject -NoUBTMakefiles  -remoteini="
/Users/sreejithkrishnanr/Robotics/tools/AirSim/Unreal/Environments/Blocks" -skipdeploy -flushmac -noxge -nocreatestub -NoHotReload -ignorejunk
UATHelper: Packaging (Mac):   Parsing headers for Blocks
UATHelper: Packaging (Mac):     Running UnrealHeaderTool "/Users/sreejithkrishnanr/Robotics/tools/AirSim/Unreal/Environments/Blocks/Blocks.uproject" "/Users/sreejithkrishnanr/Robotics/tools/AirSim/Unreal/Environments/Blocks/Intermediate/Build/Mac/Blocks/Development/Blocks.uhtmanifest" -LogCmds="loginit warning, logexit warning, logdatabase error" -Unattended
 -WarningsAsErrors -installed
UATHelper: Packaging (Mac):   Reflection code generated for Blocks in 8.0537416 seconds
UATHelper: Packaging (Mac):   Performing 12 actions (8 in parallel)
UATHelper: Packaging (Mac):   [3/12] Compile SharedPCH.Engine.h
UATHelper: Packaging (Mac):   [2/12] Compile Module.AirSim.gen.cpp
UATHelper: Packaging (Mac):   [1/12] Compile Module.AirSim.cpp
UATHelper: Packaging (Mac):   [4/12] Compile PCH.UELinkerFixups.h
UATHelper: Packaging (Mac):   [5/12] Compile UELinkerFixups.cpp
UATHelper: Packaging (Mac):   [6/12] Compile Blocks.cpp
UATHelper: Packaging (Mac):   [7/12] Link UE4-AirSim.a
UATHelper: Packaging (Mac):   [8/12] Link Blocks
UATHelper: Packaging (Mac):   ld: warning: object file (/Users/sreejithkrishnanr/Robotics/tools/AirSim/Unreal/Environments/Blocks/Plugins/AirSim/Source/AirLib/deps/MavLinkCom/lib/libMavLinkCom.a(MavLinkNode.cpp.o)) was built for newer OSX version (10.14) than being linked (10.11)
UATHelper: Packaging (Mac):   ld: warning: object file (/Users/sreejithkrishnanr/Robotics/tools/AirSim/Unreal/Environments/Blocks/Plugins/AirSim/Source/AirLib/deps/MavLinkCom/lib/libMavLinkCom.a(MavLinkVehicle.cpp.o)) was built for newer OSX version (10.14) than being linked (10.11)
UATHelper: Packaging (Mac):   ld: warning: object file (/Users/sreejithkrishnanr/Robotics/tools/AirSim/Unreal/Environments/Blocks/Plugins/AirSim/Source/AirLib/deps/MavLinkCom/lib/libMavLinkCom.a(AdHocConnection.cpp.o)) was built for newer OSX version (10.14) than being linked (10.11)
UATHelper: Packaging (Mac):   ld: warning: object file (/Users/sreejithkrishnanr/Robotics/tools/AirSim/Unreal/Environments/Blocks/Plugins/AirSim/Source/AirLib/deps/MavLinkCom/lib/libMavLinkCom.a(MavLinkConnection.cpp.o)) was built for newer OSX version (10.14) than being linked (10.11)
UATHelper: Packaging (Mac):   ld: warning: object file (/Users/sreejithkrishnanr/Robotics/tools/AirSim/Unreal/Environments/Blocks/Plugins/AirSim/Source/AirLib/deps/MavLinkCom/lib/libMavLinkCom.a(MavLinkFindSerialPorts.cpp.o)) was built for newer OSX version (10.14) than being linked (10.11)
UATHelper: Packaging (Mac):   ld: warning: object file (/Users/sreejithkrishnanr/Robotics/tools/AirSim/Unreal/Environments/Blocks/Plugins/AirSim/Source/AirLib/deps/MavLinkCom/lib/libMavLinkCom.a(MavLinkMessageBase.cpp.o)) was built for newer OSX version (10.14) than being linked (10.11)
UATHelper: Packaging (Mac):   ld: warning: object file (/Users/sreejithkrishnanr/Robotics/tools/AirSim/Unreal/Environments/Blocks/Plugins/AirSim/Source/AirLib/deps/MavLinkCom/lib/libMavLinkCom.a(Semaphore.cpp.o)) was built for newer OSX version (10.14) than being linked (10.11)
UATHelper: Packaging (Mac):   ld: warning: object file (/Users/sreejithkrishnanr/Robotics/tools/AirSim/Unreal/Environments/Blocks/Plugins/AirSim/Source/AirLib/deps/rpclib/lib/librpc.a(client.cc.o)) was built for newer OSX version (10.14) than being linked (10.11)
UATHelper: Packaging (Mac):   ld: warning: object file (/Users/sreejithkrishnanr/Robotics/tools/AirSim/Unreal/Environments/Blocks/Plugins/AirSim/Source/AirLib/deps/rpclib/lib/librpc.a(dispatcher.cc.o)) was built for newer OSX version (10.14) than being linked (10.11)
UATHelper: Packaging (Mac):   ld: warning: object file (/Users/sreejithkrishnanr/Robotics/tools/AirSim/Unreal/Environments/Blocks/Plugins/AirSim/Source/AirLib/deps/rpclib/lib/librpc.a(server.cc.o)) was built for newer OSX version (10.14) than being linked (10.11)
UATHelper: Packaging (Mac):   ld: warning: object file (/Users/sreejithkrishnanr/Robotics/tools/AirSim/Unreal/Environments/Blocks/Plugins/AirSim/Source/AirLib/deps/MavLinkCom/lib/libMavLinkCom.a(MavLinkMessages.cpp.o)) was built for newer OSX version (10.14) than being linked (10.11)
UATHelper: Packaging (Mac):   ld: warning: object file (/Users/sreejithkrishnanr/Robotics/tools/AirSim/Unreal/Environments/Blocks/Plugins/AirSim/Source/AirLib/deps/rpclib/lib/librpc.a(format.cc.o)) was built for newer OSX version (10.14) than being linked (10.11)
UATHelper: Packaging (Mac):   ld: warning: object file (/Users/sreejithkrishnanr/Robotics/tools/AirSim/Unreal/Environments/Blocks/Plugins/AirSim/Source/AirLib/deps/MavLinkCom/lib/libMavLinkCom.a(MavLinkNodeImpl.cpp.o)) was built for newer OSX version (10.14) than being linked (10.11)
UATHelper: Packaging (Mac):   ld: warning: object file (/Users/sreejithkrishnanr/Robotics/tools/AirSim/Unreal/Environments/Blocks/Plugins/AirSim/Source/AirLib/deps/MavLinkCom/lib/libMavLinkCom.a(MavLinkVehicleImpl.cpp.o)) was built for newer OSX version (10.14) than being linked (10.11)
UATHelper: Packaging (Mac):   ld: warning: object file (/Users/sreejithkrishnanr/Robotics/tools/AirSim/Unreal/Environments/Blocks/Plugins/AirSim/Source/AirLib/deps/MavLinkCom/lib/libMavLinkCom.a(AdHocConnectionImpl.cpp.o)) was built for newer OSX version (10.14) than being linked (10.11)
UATHelper: Packaging (Mac):   ld: warning: object file (/Users/sreejithkrishnanr/Robotics/tools/AirSim/Unreal/Environments/Blocks/Plugins/AirSim/Source/AirLib/deps/MavLinkCom/lib/libMavLinkCom.a(MavLinkConnectionImpl.cpp.o)) was built for newer OSX version (10.14) than being linked (10.11)
UATHelper: Packaging (Mac):   ld: warning: object file (/Users/sreejithkrishnanr/Robotics/tools/AirSim/Unreal/Environments/Blocks/Plugins/AirSim/Source/AirLib/deps/rpclib/lib/librpc.a(client_error.cc.o)) was built for newer OSX version (10.14) than being linked (10.11)
UATHelper: Packaging (Mac):   ld: warning: object file (/Users/sreejithkrishnanr/Robotics/tools/AirSim/Unreal/Environments/Blocks/Plugins/AirSim/Source/AirLib/deps/rpclib/lib/librpc.a(server_session.cc.o)) was built for newer OSX version (10.14) than being linked (10.11)
UATHelper: Packaging (Mac):   ld: warning: object file (/Users/sreejithkrishnanr/Robotics/tools/AirSim/Unreal/Environments/Blocks/Plugins/AirSim/Source/AirLib/deps/rpclib/lib/librpc.a(response.cc.o)) was built for newer OSX version (10.14) than being linked (10.11)
UATHelper: Packaging (Mac):   ld: warning: object file (/Users/sreejithkrishnanr/Robotics/tools/AirSim/Unreal/Environments/Blocks/Plugins/AirSim/Source/AirLib/deps/rpclib/lib/librpc.a(rpc_error.cc.o)) was built for newer OSX version (10.14) than being linked (10.11)
UATHelper: Packaging (Mac):   ld: warning: object file (/Users/sreejithkrishnanr/Robotics/tools/AirSim/Unreal/Environments/Blocks/Plugins/AirSim/Source/AirLib/deps/MavLinkCom/lib/libMavLinkCom.a(SerialPort.cpp.o)) was built for newer OSX version (10.14) than being linked (10.11)
UATHelper: Packaging (Mac):   ld: warning: object file (/Users/sreejithkrishnanr/Robotics/tools/AirSim/Unreal/Environments/Blocks/Plugins/AirSim/Source/AirLib/deps/MavLinkCom/lib/libMavLinkCom.a(TcpClientPort.cpp.o)) was built for newer OSX version (10.14) than being linked (10.11)
UATHelper: Packaging (Mac):   ld: warning: object file (/Users/sreejithkrishnanr/Robotics/tools/AirSim/Unreal/Environments/Blocks/Plugins/AirSim/Source/AirLib/deps/MavLinkCom/lib/libMavLinkCom.a(UdpClientPort.cpp.o)) was built for newer OSX version (10.14) than being linked (10.11)
UATHelper: Packaging (Mac):   ld: warning: object file (/Users/sreejithkrishnanr/Robotics/tools/AirSim/Unreal/Environments/Blocks/Plugins/AirSim/Source/AirLib/deps/rpclib/lib/librpc.a(this_server.cc.o)) was built for newer OSX version (10.14) than being linked (10.11)
UATHelper: Packaging (Mac):   ld: warning: object file (/Users/sreejithkrishnanr/Robotics/tools/AirSim/Unreal/Environments/Blocks/Plugins/AirSim/Source/AirLib/deps/rpclib/lib/librpc.a(this_handler.cc.o)) was built for newer OSX version (10.14) than being linked (10.11)
UATHelper: Packaging (Mac):   ld: warning: object file (/Users/sreejithkrishnanr/Robotics/tools/AirSim/Unreal/Environments/Blocks/Plugins/AirSim/Source/AirLib/deps/rpclib/lib/librpc.a(this_session.cc.o)) was built for newer OSX version (10.14) than being linked (10.11)
UATHelper: Packaging (Mac):   ld: warning: object file (/Users/sreejithkrishnanr/Robotics/tools/AirSim/Unreal/Environments/Blocks/Plugins/AirSim/Source/AirLib/deps/MavLinkCom/lib/libMavLinkCom.a(wifi.cpp.o)) was built for newer OSX version (10.14) than being linked (10.11)
UATHelper: Packaging (Mac):   ld: warning: object file (/Users/sreejithkrishnanr/Robotics/tools/AirSim/Unreal/Environments/Blocks/Plugins/AirSim/Source/AirLib/deps/MavLinkCom/lib/libMavLinkCom.a(SocketInit.cpp.o)) was built for newer OSX version (10.14) than being linked (10.11)
UATHelper: Packaging (Mac):   Undefined symbols for architecture x86_64:
UATHelper: Packaging (Mac):     "FIOSPlatformAffinity::GetNoAffinityMask()", referenced from:
UATHelper: Packaging (Mac):         FRecordingThread::FRecordingThread() in UE4-AirSim.a(Module.AirSim.cpp.o)
UATHelper: Packaging (Mac):   ld: symbol(s) not found for architecture x86_64
UATHelper: Packaging (Mac):   clang: error: linker command failed with exit code 1 (use -v to see invocation)
UATHelper: Packaging (Mac):   error: /Applications/Xcode9.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/install_name_tool: can't open file: /Users/sreejithkrishnanr/Robotics/tools/AirSim/Unreal/Environments/Blocks/Binaries/Mac/Blocks.app/Contents/MacOS/Blocks (No such file or directory)
UATHelper: Packaging (Mac):   error: /Applications/Xcode9.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/install_name_tool: can't open file: /Users/sreejithkrishnanr/Robotics/tools/AirSim/Unreal/Environments/Blocks/Binaries/Mac/Blocks.app/Contents/MacOS/Blocks (No such file or directory)
UATHelper: Packaging (Mac):   ERROR: UBT ERROR: Failed to produce item: /Users/sreejithkrishnanr/Robotics/tools/AirSim/Unreal/Environments/Blocks/Binaries/Mac/Blocks.app/Contents/MacOS/Blocks
UATHelper: Packaging (Mac):   Total build time: 128.42 seconds (Local executor: 0.00 seconds)
UATHelper: Packaging (Mac): Took 128.89198s to run mono, ExitCode=5
UATHelper: Packaging (Mac): ERROR: Command failed (Result:5): /Volumes/UR/Epic Games/UE_4.18/Engine/Binaries/DotNET/UnrealBuildTool.exe Blocks Mac Development -Project=/Users/sreejithkrishnanr/Robotics/tools/AirSim/Unreal/Environments/Blocks/Blocks.uproject  /Users/sreejithkrishnanr/Robotics/tools/AirSim/Unreal/Environments/Blocks/Blocks.uproject -NoUBTMakef
iles  -remoteini="/Users/sreejithkrishnanr/Robotics/tools/AirSim/Unreal/Environments/Blocks" -skipdeploy -flushmac -noxge -nocreatestub -NoHotReload -ignorejunk. See logfile for details: 'UnrealBuildTool-2019.01.15-00.33.20.txt' 
UATHelper: Packaging (Mac):        (see /Users/sreejithkrishnanr/Library/Logs/Unreal Engine/LocalBuildLogs/UAT_Log.txt for full exception trace)
UATHelper: Packaging (Mac): AutomationTool exiting with ExitCode=5 (5)
UATHelper: Packaging (Mac): RunUAT ERROR: AutomationTool was unable to run successfully.
PackagingResults: Error: Unknown Error
msb336 commented 5 years ago

@sreejithkrishnanr At this time, airsim is not supported on mac. Can I ask how you were able to get it to run successfully in the editor?

It appears the error you're running into is inside of the airsim library:

Undefined symbols for architecture x86_64:
UATHelper: Packaging (Mac):     "FIOSPlatformAffinity::GetNoAffinityMask()", referenced from:
UATHelper: Packaging (Mac):         FRecordingThread::FRecordingThread() in UE4-AirSim.a(Module.AirSim.cpp.o)
UATHelper: Packaging (Mac):   ld: symbol(s) not found for architecture x86_64
UATHelper: Packaging (Mac):   clang: error: linker command failed with exit code 1 (use -v to see invocation)

This symbol is defined here.

In editor, are you able to run HelloDrone or HelloCar?

sreejithkrishnanr commented 5 years ago

@msb336 Building from source by running setup.sh and build.sh is working. I believe support for mac is in progress because running setup.sh is installing some packages using homebrew.

Also while running inside editor, running HelloDrone is also working.

According to the logs, missing symbol FIOSPlatformAffinity::GetNoAffinityMask is referenced from FRecordingThread::FRecordingThread. But I couldn't find any reference to that symbol in RecordingThread.cpp.

sreejithkrishnanr commented 5 years ago

This issue does not occur when packaging using UE 4.21.2

But to get airsim to work on UE 4.21.2 I had to comment out lines 127 and 134. This might drop the frame rate of capturing images by half (See #1657).

https://github.com/Microsoft/AirSim/blob/1b80d028d80860e81c60502e0800529547940cd8/Unreal/Plugins/AirSim/Source/AirBlueprintLib.cpp#L112-L135