CodexLabsLLC / Colosseum

Open source simulator for autonomous robotics built on Unreal Engine with support for Unity
https://codexlabsllc.github.io/Colosseum/
Other
335 stars 105 forks source link

Build failing on macOS Ventura, Xcode Version: 14.3.1 #57

Open overheat opened 1 year ago

overheat commented 1 year ago

Bug report

What's the issue you encountered?

After building Colosseum from source, when trying to build the Blocks.xcworkspace with XCode (which is generated from ./GenerateProjectFiles.sh) I get the error:

/Users/Shared/Epic Games/UE_5.2/clang:1:1 linker command failed with exit code 1 (use -v to see invocation)

Settings

How can the issue be reproduced?

After cloning the repo, build Colosseum:

./setup.sh && ./build.sh

cd to Unreal/Environments/Blocks Run ./GenerateProjectFiles.sh <UE_PATH> Open the XCode workspace and build

Include full error message in text form

/Users/Shared/Epic Games/UE_5.2/clang:1:1 linker command failed with exit code 1 (use -v to see invocation)

jselvam11 commented 1 year ago

Ran into the same issue and fixed by reinstalling Xcode CommandLineTools

xcode-select --install

overheat commented 1 year ago

xcode-select --install

Not fixed my issue.

@jselvam11 Could you kindly try this?

clang --version

Apple clang version 14.0.3 (clang-1403.0.22.14.1)
Target: arm64-apple-darwin22.6.0
Thread model: posix
InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin
overheat commented 1 year ago
/Users/Shared/Epic Games/UE_5.2/ld:1:1 ignoring file /Users/aaron/ml/Colosseum/Unreal/Environments/Blocks/Plugins/AirSim/Source/AirLib/deps/MavLinkCom/lib/libMavLinkCom.a, building for macOS-arm64 but attempting to link with file built for macOS-x86_64

/Users/Shared/Epic Games/UE_5.2/ld:1:1 ignoring file /Users/aaron/ml/Colosseum/Unreal/Environments/Blocks/Plugins/AirSim/Source/AirLib/lib/libAirLib.a, building for macOS-arm64 but attempting to link with file built for macOS-x86_64

/Users/Shared/Epic Games/UE_5.2/ld:1:1 ignoring file /Users/aaron/ml/Colosseum/Unreal/Environments/Blocks/Plugins/AirSim/Source/AirLib/deps/rpclib/lib/librpc.a, building for macOS-arm64 but attempting to link with file built for macOS-x86_64

How to pervent libMavLinkCom.a, libAirLib.a and librpc.a linking?

xxEoD2242 commented 1 year ago

I'm fairly certain this will not work on Apple ARM chips. I don't have one so I can't reproduce the issues unfortunately. Most likely, the Clang compiler is to new for the build flags and CMake version of the system.

overheat commented 1 year ago
diff --git a/build.sh b/build.sh
index 8b45d64b..713b43b5 100755
--- a/build.sh
+++ b/build.sh
@@ -97,7 +97,7 @@ fi
 # Fix for Unreal/Unity using x86_64 (Rosetta) on Apple Silicon hardware.
 CMAKE_VARS=
 if [ "$(uname)" == "Darwin" ]; then
-    CMAKE_VARS="-DCMAKE_APPLE_SILICON_PROCESSOR=x86_64"
+    CMAKE_VARS="-DCMAKE_APPLE_SILICON_PROCESSOR=arm64"
 fi

 pushd $build_dir  >/dev/null

This will fix this issue.

overheat commented 1 year ago

I'm fairly certain this will not work on Apple ARM chips. I don't have one so I can't reproduce the issues unfortunately. Most likely, the Clang compiler is to new for the build flags and CMake version of the system.

Maybe. And I am not sure if change the gcc from clang to gcc-13 help or not.

Anyway, I did this before modify build.sh:

➜ brew install gcc

➜ cat ~/.zshrc
 alias gcc='gcc-13'
 alias g++='g++-13'
 alias c++='c++-13'