base icon indicating copy to clipboard operation
base copied to clipboard

Cannot build with Xcode on macOS (arm64)

Open r0xx0rd-teh-x0xx0r opened this issue 2 years ago • 2 comments

I am trying to build Redeclipse for arm64 macOS, get the error: ld: Undefined symbols Don´t know if it is the right way to build the game for macOS. I already tried updating the SDL2 frameworks shipped with this repo to newer ones supporting universal x86_64 and arm64 on macOS.

  • Version and build: newest commit [25a03f0](from github as of 17.10.2023)
  • Observation: Cannot build using Xcode on macOS (arm64)
  • Expected result: working redeclipse.app through Xcode
  • How to reproduce: setuop Xcode, clone repository, update sdl2 frameworks to arm64 supported versions in bin/redeclipse.app/Contents open, try to build

Full stack from xcode:

Ld /Users/ryo/Library/Developer/Xcode/DerivedData/redeclipse-ajrzxdlsclrkiyeoezawzijmvwwa/Build/Products/Debug/redeclipse.app/Contents/MacOS/redeclipse normal (in target 'redeclipse' from project 'redeclipse') cd /Users/ryo/Source/base/src/xcode /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang++ -Xlinker -reproducible -target arm64-apple-macos14.0 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX14.0.sdk -O0 -L/Users/ryo/Library/Developer/Xcode/DerivedData/redeclipse-ajrzxdlsclrkiyeoezawzijmvwwa/Build/Intermediates.noindex/EagerLinkingTBDs/Debug -L/Users/ryo/Library/Developer/Xcode/DerivedData/redeclipse-ajrzxdlsclrkiyeoezawzijmvwwa/Build/Products/Debug -F/Users/ryo/Library/Developer/Xcode/DerivedData/redeclipse-ajrzxdlsclrkiyeoezawzijmvwwa/Build/Intermediates.noindex/EagerLinkingTBDs/Debug -F/Users/ryo/Library/Developer/Xcode/DerivedData/redeclipse-ajrzxdlsclrkiyeoezawzijmvwwa/Build/Products/Debug -F../../bin/redeclipse.app/Contents/Frameworks -F/Users/ryo/Library/Frameworks -F/Library/Frameworks -filelist /Users/ryo/Library/Developer/Xcode/DerivedData/redeclipse-ajrzxdlsclrkiyeoezawzijmvwwa/Build/Intermediates.noindex/redeclipse.build/Debug/redeclipse.build/Objects-normal/arm64/redeclipse.LinkFileList -Xlinker -rpath -Xlinker @loader_path/../Frameworks -Xlinker -object_path_lto -Xlinker /Users/ryo/Library/Developer/Xcode/DerivedData/redeclipse-ajrzxdlsclrkiyeoezawzijmvwwa/Build/Intermediates.noindex/redeclipse.build/Debug/redeclipse.build/Objects-normal/arm64/redeclipse_lto.o -Xlinker -no_deduplicate -fobjc-link-runtime -lz -L../../bin/redeclipse.app/Contents/Frameworks -framework Cocoa -framework OpenGL -framework SDL2_image -framework SDL2_mixer -framework SDL2 -Xlinker -no_adhoc_codesign -Xlinker -dependency_info -Xlinker /Users/ryo/Library/Developer/Xcode/DerivedData/redeclipse-ajrzxdlsclrkiyeoezawzijmvwwa/Build/Intermediates.noindex/redeclipse.build/Debug/redeclipse.build/Objects-normal/arm64/redeclipse_dependency_info.dat -o /Users/ryo/Library/Developer/Xcode/DerivedData/redeclipse-ajrzxdlsclrkiyeoezawzijmvwwa/Build/Products/Debug/redeclipse.app/Contents/MacOS/redeclipse

ld: Undefined symbols: _alBufferData, referenced from: soundsample::setup(soundfile*) in sound.o soundsample::setup(soundfile*) in sound.o musicstream::fill(int) in sound.o musicstream::fill(int) in sound.o _alDeleteBuffers, referenced from: musicstream::setup(char const*, soundfile*) in sound.o soundsample::setup(soundfile*) in sound.o soundsample::cleanup() in sound.o musicstream::cleanup() in sound.o _alDeleteSources, referenced from: musicstream::setup(char const*, soundfile*) in sound.o soundsource::cleanup() in sound.o soundsource::setup(soundsample*) in sound.o musicstream::cleanup() in sound.o _alDistanceModel, referenced from: initsound() in sound.o _alDopplerFactor, referenced from: soundsetdoppler(float) in sound.o _alGenBuffers, referenced from: musicstream::setup(char const*, soundfile*) in sound.o soundsample::setup(soundfile*) in sound.o _alGenSources, referenced from: musicstream::setup(char const*, soundfile*) in sound.o soundsource::setup(soundsample*) in sound.o _alGetError, referenced from: soundenv::setparams(unsigned int) in sound.o soundenvzone::attachparams() in sound.o soundenvzone::attachparams() in sound.o soundenvzone::attachparams() in sound.o sounderror(bool) in sound.o soundsetdoppler(float) in sound.o soundsetspeed(float) in sound.o ... _alGetProcAddress, referenced from: getextsoundprocs() in sound.o getextsoundprocs() in sound.o getextsoundprocs() in sound.o getextsoundprocs() in sound.o getextsoundprocs() in sound.o getextsoundprocs() in sound.o getextsoundprocs() in sound.o getextsoundprocs() in sound.o getextsoundprocs() in sound.o getextsoundprocs() in sound.o getextsoundprocs() in sound.o getextsoundprocs() in sound.o getextsoundprocs() in sound.o getextsoundprocs() in sound.o ... _alGetSourcei, referenced from: musicstream::update() in sound.o musicstream::update() in sound.o musicstream::playing() in sound.o soundsource::active() in sound.o soundsource::playing() in sound.o musicstream::active() in sound.o _alGetString, referenced from: sounderror(bool) in sound.o initsound() in sound.o initsound() in sound.o initsound() in sound.o playmusic(char const*, bool) in sound.o updatesounds() in sound.o emitsound(int, vec*, physent*, int*, int, float, float, float, float, float, int, float, int) in sound.o ... _alIsBuffer, referenced from: musicstream::setup(char const*, soundfile*) in sound.o soundsample::valid() in sound.o musicstream::valid() in sound.o soundsample::setup(soundfile*) in sound.o _alIsExtensionPresent, referenced from: initsound() in sound.o initsound() in sound.o _alIsSource, referenced from: musicstream::setup(char const*, soundfile*) in sound.o soundsource::valid() in sound.o musicstream::valid() in sound.o soundsource::setup(soundsample*) in sound.o _alListenerf, referenced from: updatesounds() in sound.o updatesounds() in sound.o _alListenerfv, referenced from: updatesounds() in sound.o updatesounds() in sound.o updatesounds() in sound.o _alSource3f, referenced from: musicstream::setup(char const*, soundfile*) in sound.o _alSource3i, referenced from: soundsource::update() in sound.o soundsource::update() in sound.o _alSourcePause, referenced from: soundsource::pause() in sound.o musicstream::pause() in sound.o _alSourcePlay, referenced from: musicstream::update() in sound.o soundsource::play() in sound.o musicstream::play() in sound.o _alSourceQueueBuffers, referenced from: musicstream::update() in sound.o musicstream::setup(char const*, soundfile*) in sound.o _alSourceStop, referenced from: soundsource::cleanup() in sound.o soundsource::stop() in sound.o musicstream::cleanup() in sound.o musicstream::stop() in sound.o _alSourceUnqueueBuffers, referenced from: musicstream::update() in sound.o _alSourcef, referenced from: musicstream::update() in sound.o musicstream::setup(char const*, soundfile*) in sound.o soundsource::update() in sound.o soundsource::update() in sound.o soundsource::update() in sound.o soundsource::setup(soundsample*) in sound.o soundsource::setup(soundsample*) in sound.o soundsource::setup(soundsample*) in sound.o soundsource::setup(soundsample*) in sound.o ... _alSourcefv, referenced from: soundsource::update() in sound.o soundsource::update() in sound.o _alSourcei, referenced from: musicstream::setup(char const*, soundfile*) in sound.o soundsource::update() in sound.o soundsource::setup(soundsample*) in sound.o soundsource::setup(soundsample*) in sound.o soundsource::setup(soundsample*) in sound.o soundsource::setup(soundsample*) in sound.o soundsource::setup(soundsample*) in sound.o soundsource::setup(soundsample*) in sound.o ... _alSpeedOfSound, referenced from: soundsetspeed(float) in sound.o _alcCloseDevice, referenced from: initsound() in sound.o stopsound() in sound.o _alcCreateContext, referenced from: initsound() in sound.o _alcDestroyContext, referenced from: stopsound() in sound.o _alcGetIntegerv, referenced from: initsound() in sound.o _alcGetString, referenced from: initsound() in sound.o initsound() in sound.o initsound() in sound.o initsound() in sound.o _alcIsExtensionPresent, referenced from: initsound() in sound.o initsound() in sound.o _alcMakeContextCurrent, referenced from: initsound() in sound.o stopsound() in sound.o _alcOpenDevice, referenced from: initsound() in sound.o initsound() in sound.o _alcProcessContext, referenced from: updatesounds() in sound.o _alcSuspendContext, referenced from: updatesounds() in sound.o _sf_close, referenced from: soundfile::clear() in sound.o _sf_get_string, referenced from: musicstream::setup(char const*, soundfile*) in sound.o musicstream::setup(char const*, soundfile*) in sound.o musicstream::setup(char const*, soundfile*) in sound.o _sf_open_virtual, referenced from: soundfile::setup(char const*, int, int) in sound.o _sf_readf_float, referenced from: soundfile::setupsnd() in sound.o soundfile::fillmus(bool) in sound.o _sf_readf_short, referenced from: soundfile::setupsnd() in sound.o soundfile::fillmus(bool) in sound.o _sf_seek, referenced from: soundfile::fillmus(bool) in sound.o _sf_strerror, referenced from: soundfile::setup(char const*, int, int) in sound.o clang: error: linker command failed with exit code 1 (use -v to see invocation)

r0xx0rd-teh-x0xx0r avatar Oct 17 '23 10:10 r0xx0rd-teh-x0xx0r

Hallo, we are currently not supporting this platform but there are some attempts from community members find an easy way let it happend, speaking of things like apples CrossOver ect. Best thing is you join us onto Discord and I will guide you to that. Just ping me when you are joining Discord.

dc-redeclipse avatar Oct 17 '23 11:10 dc-redeclipse

Understandable since the platform is still quite new. It should run fine in CrossOver also the current Intel x84_64 macos build also still works fine. In the 2-3 years macOS might drop the translation layer for Intel entierely and only support arm64 though.

I will ping you on Discord.

r0xx0rd-teh-x0xx0r avatar Oct 17 '23 11:10 r0xx0rd-teh-x0xx0r

macOS sandbox becomes mandatory in April. Red Eclipse is officially discontinuing support for the platform. Sorry.

qreeves avatar Mar 14 '24 00:03 qreeves