protonscr

Cannot build proton in macos

protonclosed
ValveSoftware/Proton#234 · opened 2018-08-23 by chy9002 · updated 2018-09-12 · 9 comments · github
Cchy9002 2018-08-23 github

System: 10.13.6
Xcode: Version 9.4.1 (9F2000)

Log:

./build_proton.sh
-- Could NOT find ALSA (missing: ALSA_LIBRARY ALSA_INCLUDE_DIR)
-- Could NOT find OSS (missing: OSS_INCLUDE_DIR)
-- Could NOT find AudioIO (missing: AUDIOIO_INCLUDE_DIR)
-- Could NOT find SoundIO (missing: SOUNDIO_LIBRARY SOUNDIO_INCLUDE_DIR)
-- Could NOT find QSA (missing: QSA_LIBRARY QSA_INCLUDE_DIR)
-- Could NOT find PortAudio (missing: PORTAUDIO_LIBRARY PORTAUDIO_INCLUDE_DIR)
-- Could NOT find PulseAudio (missing: PULSEAUDIO_LIBRARY PULSEAUDIO_INCLUDE_DIR)
-- Could NOT find JACK (missing: JACK_LIBRARY JACK_INCLUDE_DIR)
CMake Warning at utils/alsoft-config/CMakeLists.txt:13 (find_package):
  By not providing "FindQt5Widgets.cmake" in CMAKE_MODULE_PATH this project
  has asked CMake to find a package configuration file provided by
  "Qt5Widgets", but CMake did not find one.

  Could not find a package configuration file provided by "Qt5Widgets" with
  any of the following names:

    Qt5WidgetsConfig.cmake
    qt5widgets-config.cmake

  Add the installation prefix of "Qt5Widgets" to CMAKE_PREFIX_PATH or set
  "Qt5Widgets_DIR" to a directory containing one of the above files.  If
  "Qt5Widgets" provides a separate development package or SDK, be sure it has
  been installed.


-- Found unsuitable Qt version "" from NOTFOUND
-- Could NOT find SDL_sound (missing: SDL_SOUND_LIBRARIES SDL_SOUND_INCLUDE_DIR)
--
-- Building OpenAL with support for the following backends:
--      CoreAudio, WaveFile, Null
--
-- Building with support for CPU extensions:
--     Default, SSE, SSE2, SSE3, SSE4.1
--
-- Installing sample configuration
--
-- Installing HRTF definitions
--
-- Installing AmbDec presets
--
-- Building utility programs
--
-- Building test programs
--
-- Building example programs
-- Building SDL+FFmpeg example programs
--
-- Configuring done
-- Generating done
-- Build files have been written to: /Users/colincai/Git/proton/build/openal.win32
/usr/local/Cellar/cmake/3.12.1/bin/cmake -H/Users/colincai/Git/proton/openal-soft -B/Users/colincai/Git/proton/build/openal.win32 --check-build-system CMakeFiles/Makefile.cmake 0
/usr/local/Cellar/cmake/3.12.1/bin/cmake -E cmake_progress_start /Users/colincai/Git/proton/build/openal.win32/CMakeFiles /Users/colincai/Git/proton/build/openal.win32/CMakeFiles/progress.marks
/Volumes/Transcend/Home/Applications/Xcode.app/Contents/Developer/usr/bin/make -f CMakeFiles/Makefile2 all
/Volumes/Transcend/Home/Applications/Xcode.app/Contents/Developer/usr/bin/make -f CMakeFiles/build_version.dir/build.make CMakeFiles/build_version.dir/depend
/Volumes/Transcend/Home/Applications/Xcode.app/Contents/Developer/usr/bin/make -f CMakeFiles/bsincgen.dir/build.make CMakeFiles/bsincgen.dir/depend
/Volumes/Transcend/Home/Applications/Xcode.app/Contents/Developer/usr/bin/make -f CMakeFiles/makehrtf.dir/build.make CMakeFiles/makehrtf.dir/depend
cd /Users/colincai/Git/proton/build/openal.win32 && /usr/local/Cellar/cmake/3.12.1/bin/cmake -E cmake_depends "Unix Makefiles" /Users/colincai/Git/proton/openal-soft /Users/colincai/Git/proton/openal-soft /Users/colincai/Git/proton/build/openal.win32 /Users/colincai/Git/proton/build/openal.win32 /Users/colincai/Git/proton/build/openal.win32/CMakeFiles/build_version.dir/DependInfo.cmake --color=
cd /Users/colincai/Git/proton/build/openal.win32 && /usr/local/Cellar/cmake/3.12.1/bin/cmake -E cmake_depends "Unix Makefiles" /Users/colincai/Git/proton/openal-soft /Users/colincai/Git/proton/openal-soft /Users/colincai/Git/proton/build/openal.win32 /Users/colincai/Git/proton/build/openal.win32 /Users/colincai/Git/proton/build/openal.win32/CMakeFiles/bsincgen.dir/DependInfo.cmake --color=
cd /Users/colincai/Git/proton/build/openal.win32 && /usr/local/Cellar/cmake/3.12.1/bin/cmake -E cmake_depends "Unix Makefiles" /Users/colincai/Git/proton/openal-soft /Users/colincai/Git/proton/openal-soft /Users/colincai/Git/proton/build/openal.win32 /Users/colincai/Git/proton/build/openal.win32 /Users/colincai/Git/proton/build/openal.win32/CMakeFiles/makehrtf.dir/DependInfo.cmake --color=
/Volumes/Transcend/Home/Applications/Xcode.app/Contents/Developer/usr/bin/make -f CMakeFiles/makehrtf.dir/build.make CMakeFiles/makehrtf.dir/build
/Volumes/Transcend/Home/Applications/Xcode.app/Contents/Developer/usr/bin/make -f CMakeFiles/build_version.dir/build.make CMakeFiles/build_version.dir/build
/Volumes/Transcend/Home/Applications/Xcode.app/Contents/Developer/usr/bin/make -f CMakeFiles/bsincgen.dir/build.make CMakeFiles/bsincgen.dir/build
cd /Users/colincai/Git/proton/openal-soft && /usr/local/Cellar/cmake/3.12.1/bin/cmake -D GIT_EXECUTABLE=/usr/bin/git -D LIB_VERSION=1.18.2 -D SRC=/Users/colincai/Git/proton/openal-soft/version.h.in -D DST=/Users/colincai/Git/proton/build/openal.win32/version.h -P /Users/colincai/Git/proton/openal-soft/version.cmake
make[2]: Nothing to be done for `CMakeFiles/makehrtf.dir/build'.
make[2]: Nothing to be done for `CMakeFiles/bsincgen.dir/build'.
[  3%] Built target makehrtf
[  4%] Built target bsincgen
[  4%] Built target build_version
/Volumes/Transcend/Home/Applications/Xcode.app/Contents/Developer/usr/bin/make -f CMakeFiles/OpenAL.dir/build.make CMakeFiles/OpenAL.dir/depend
cd /Users/colincai/Git/proton/build/openal.win32 && /usr/local/Cellar/cmake/3.12.1/bin/cmake -E cmake_depends "Unix Makefiles" /Users/colincai/Git/proton/openal-soft /Users/colincai/Git/proton/openal-soft /Users/colincai/Git/proton/build/openal.win32 /Users/colincai/Git/proton/build/openal.win32 /Users/colincai/Git/proton/build/openal.win32/CMakeFiles/OpenAL.dir/DependInfo.cmake --color=
/Volumes/Transcend/Home/Applications/Xcode.app/Contents/Developer/usr/bin/make -f CMakeFiles/OpenAL.dir/build.make CMakeFiles/OpenAL.dir/build
make[2]: Nothing to be done for `CMakeFiles/OpenAL.dir/build'.
[ 70%] Built target OpenAL
/Volumes/Transcend/Home/Applications/Xcode.app/Contents/Developer/usr/bin/make -f CMakeFiles/openal-info.dir/build.make CMakeFiles/openal-info.dir/depend
/Volumes/Transcend/Home/Applications/Xcode.app/Contents/Developer/usr/bin/make -f CMakeFiles/alffplay.dir/build.make CMakeFiles/alffplay.dir/depend
/Volumes/Transcend/Home/Applications/Xcode.app/Contents/Developer/usr/bin/make -f CMakeFiles/alrecord.dir/build.make CMakeFiles/alrecord.dir/depend
/Volumes/Transcend/Home/Applications/Xcode.app/Contents/Developer/usr/bin/make -f CMakeFiles/altonegen.dir/build.make CMakeFiles/altonegen.dir/depend
cd /Users/colincai/Git/proton/build/openal.win32 && /usr/local/Cellar/cmake/3.12.1/bin/cmake -E cmake_depends "Unix Makefiles" /Users/colincai/Git/proton/openal-soft /Users/colincai/Git/proton/openal-soft /Users/colincai/Git/proton/build/openal.win32 /Users/colincai/Git/proton/build/openal.win32 /Users/colincai/Git/proton/build/openal.win32/CMakeFiles/openal-info.dir/DependInfo.cmake --color=
cd /Users/colincai/Git/proton/build/openal.win32 && /usr/local/Cellar/cmake/3.12.1/bin/cmake -E cmake_depends "Unix Makefiles" /Users/colincai/Git/proton/openal-soft /Users/colincai/Git/proton/openal-soft /Users/colincai/Git/proton/build/openal.win32 /Users/colincai/Git/proton/build/openal.win32 /Users/colincai/Git/proton/build/openal.win32/CMakeFiles/alffplay.dir/DependInfo.cmake --color=
cd /Users/colincai/Git/proton/build/openal.win32 && /usr/local/Cellar/cmake/3.12.1/bin/cmake -E cmake_depends "Unix Makefiles" /Users/colincai/Git/proton/openal-soft /Users/colincai/Git/proton/openal-soft /Users/colincai/Git/proton/build/openal.win32 /Users/colincai/Git/proton/build/openal.win32 /Users/colincai/Git/proton/build/openal.win32/CMakeFiles/alrecord.dir/DependInfo.cmake --color=
cd /Users/colincai/Git/proton/build/openal.win32 && /usr/local/Cellar/cmake/3.12.1/bin/cmake -E cmake_depends "Unix Makefiles" /Users/colincai/Git/proton/openal-soft /Users/colincai/Git/proton/openal-soft /Users/colincai/Git/proton/build/openal.win32 /Users/colincai/Git/proton/build/openal.win32 /Users/colincai/Git/proton/build/openal.win32/CMakeFiles/altonegen.dir/DependInfo.cmake --color=
/Volumes/Transcend/Home/Applications/Xcode.app/Contents/Developer/usr/bin/make -f CMakeFiles/openal-info.dir/build.make CMakeFiles/openal-info.dir/build
/Volumes/Transcend/Home/Applications/Xcode.app/Contents/Developer/usr/bin/make -f CMakeFiles/alffplay.dir/build.make CMakeFiles/alffplay.dir/build
make[2]: Nothing to be done for `CMakeFiles/openal-info.dir/build'.
[ 72%] Built target openal-info
/Volumes/Transcend/Home/Applications/Xcode.app/Contents/Developer/usr/bin/make -f CMakeFiles/alrecord.dir/build.make CMakeFiles/alrecord.dir/build
make[2]: Nothing to be done for `CMakeFiles/alrecord.dir/build'.
/Volumes/Transcend/Home/Applications/Xcode.app/Contents/Developer/usr/bin/make -f CMakeFiles/altonegen.dir/build.make CMakeFiles/altonegen.dir/build
[ 74%] Linking CXX executable alffplay
make[2]: Nothing to be done for `CMakeFiles/altonegen.dir/build'.
/usr/local/Cellar/cmake/3.12.1/bin/cmake -E cmake_link_script CMakeFiles/alffplay.dir/link.txt --verbose=1
[ 82%] Built target alrecord
/Volumes/Transcend/Home/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/c++  -std=c++11  -O2 -g -D_DEBUG -Wl,-search_paths_first -Wl,-headerpad_max_install_names  CMakeFiles/alffplay.dir/examples/alffplay.cpp.o CMakeFiles/alffplay.dir/common/almalloc.c.o CMakeFiles/alffplay.dir/common/atomic.c.o CMakeFiles/alffplay.dir/common/rwlock.c.o CMakeFiles/alffplay.dir/common/threads.c.o CMakeFiles/alffplay.dir/common/uintmap.c.o  -o alffplay -Wl,-rpath,/Users/colincai/Git/proton/build/openal.win32 /usr/local/lib/libSDL2main.a /usr/local/lib/libSDL2.dylib -framework Cocoa /usr/local/lib/libavformat.dylib /usr/local/lib/libavcodec.dylib /usr/local/lib/libavutil.dylib /usr/local/lib/libswscale.dylib /usr/local/lib/libswresample.dylib /usr/lib/libz.dylib libopenal.1.18.2.dylib -framework AudioToolbox -framework ApplicationServices -framework AudioUnit -framework CoreAudio -lpthread -ldl -lm
[ 92%] Built target altonegen
ld: warning: ignoring file CMakeFiles/alffplay.dir/common/almalloc.c.o, file was built for i386 which is not the architecture being linked (x86_64): CMakeFiles/alffplay.dir/common/almalloc.c.o
ld: warning: ignoring file CMakeFiles/alffplay.dir/common/atomic.c.o, file was built for i386 which is not the architecture being linked (x86_64): CMakeFiles/alffplay.dir/common/atomic.c.o
ld: warning: ignoring file CMakeFiles/alffplay.dir/common/rwlock.c.o, file was built for i386 which is not the architecture being linked (x86_64): CMakeFiles/alffplay.dir/common/rwlock.c.o
ld: warning: ignoring file CMakeFiles/alffplay.dir/common/threads.c.o, file was built for i386 which is not the architecture being linked (x86_64): CMakeFiles/alffplay.dir/common/threads.c.o
ld: warning: ignoring file CMakeFiles/alffplay.dir/common/uintmap.c.o, file was built for i386 which is not the architecture being linked (x86_64): CMakeFiles/alffplay.dir/common/uintmap.c.o
ld: warning: ignoring file libopenal.1.18.2.dylib, file was built for i386 which is not the architecture being linked (x86_64): libopenal.1.18.2.dylib
Undefined symbols for architecture x86_64:
  "_alBufferData", referenced from:
      (anonymous namespace)::AudioState::handler() in alffplay.cpp.o
  "_alDeleteBuffers", referenced from:
      (anonymous namespace)::AudioState::~AudioState() in alffplay.cpp.o
  "_alDeleteSources", referenced from:
      (anonymous namespace)::AudioState::~AudioState() in alffplay.cpp.o
  "_alGenBuffers", referenced from:
      (anonymous namespace)::AudioState::handler() in alffplay.cpp.o
  "_alGenSources", referenced from:
      (anonymous namespace)::AudioState::handler() in alffplay.cpp.o
  "_alGetEnumValue", referenced from:
      (anonymous namespace)::AudioState::handler() in alffplay.cpp.o
  "_alGetError", referenced from:
      (anonymous namespace)::AudioState::handler() in alffplay.cpp.o
  "_alGetSourcei", referenced from:
      (anonymous namespace)::AudioState::handler() in alffplay.cpp.o
      (anonymous namespace)::AudioState::getClock() in alffplay.cpp.o
  "_alIsExtensionPresent", referenced from:
      (anonymous namespace)::AudioState::handler() in alffplay.cpp.o
  "_alSourcePlay", referenced from:
      (anonymous namespace)::AudioState::handler() in alffplay.cpp.o
  "_alSourceQueueBuffers", referenced from:
      (anonymous namespace)::AudioState::handler() in alffplay.cpp.o
  "_alSourceRewind", referenced from:
      (anonymous namespace)::AudioState::handler() in alffplay.cpp.o
  "_alSourceUnqueueBuffers", referenced from:
      (anonymous namespace)::AudioState::handler() in alffplay.cpp.o
  "_alSourcei", referenced from:
      (anonymous namespace)::AudioState::handler() in alffplay.cpp.o
  "_alcCloseDevice", referenced from:
      _main in alffplay.cpp.o
  "_alcCreateContext", referenced from:
      _main in alffplay.cpp.o
  "_alcDestroyContext", referenced from:
      _main in alffplay.cpp.o
  "_alcGetError", referenced from:
      _main in alffplay.cpp.o
  "_alcGetString", referenced from:
      _main in alffplay.cpp.o
  "_alcIsExtensionPresent", referenced from:
      _main in alffplay.cpp.o
  "_alcMakeContextCurrent", referenced from:
      _main in alffplay.cpp.o
  "_alcOpenDevice", referenced from:
      _main in alffplay.cpp.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make[2]: *** [alffplay] Error 1
make[1]: *** [CMakeFiles/alffplay.dir/all] Error 2
make: *** [all] Error 2
Ppblyp 2018-08-23 github

Try playing with
brew link openal or brew unlink openal if you use Homebrew.
I've had a similar issue with SDL and it helped me proceed with the build.

Cchy9002 2018-08-23 github

https://github.com/ValveSoftware/Proton/issues/234#issuecomment-415311636

Thanks @BlokenClockCrisps , but I try to use link and unlink, they seem didn't work.

Error: No such keg: /usr/local/Cellar/openal
Ppblyp 2018-08-23 github

@chy9002 The issue (as it seems to me) here is that the compiled OpenAL library is compiled for i386 arch and you should somehow provide a x86-64 one. Try compiling that yourself, I guess, if you have this issue with openal-soft installed.

KKyleBS 2018-08-23 github

I ran across this issue as well, was there anything specific that worked to resolve it?

Ssiuying 2018-08-27 github

@BlokenClockCrisps openal-soft is included in the proton dependency, and they have both 32bit and 64bit compiled.

Ssiuying 2018-08-27 github

@chy9002 were you able to solve the issue?

Wwindmgc 2018-09-03 github

This problem also occurred on my MacOS as well, please reopen this issue so we can discuss for a solution.

Build failed on this line: build_proto.sh:134

|133         $I386_WRAPPER "$CMAKE32" "$TOP"/openal-soft -DCMAKE_C_FLAGS="-m32" -DCMAKE_INSTALL_PREFIX="$TOOLS_DIR32"¬
|134         $I386_WRAPPER make $JOBS VERBOSE=1¬

And the errors are as follows:

/usr/local/Cellar/cmake/3.12.1/bin/cmake -E cmake_link_script CMakeFiles/alffplay.dir/link.txt --verbose=1
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/c++  -std=c++11  -O2 -g -D_DEBUG -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk -Wl,-sea
rch_paths_first -Wl,-headerpad_max_install_names  CMakeFiles/alffplay.dir/examples/alffplay.cpp.o CMakeFiles/alffplay.dir/common/almalloc.c.o CMakeFiles/alffplay.dir/common/atomic.c.o CMakeFiles/alffplay.dir/common/rwlock.c.o CMakeFiles/a
lffplay.dir/common/threads.c.o CMakeFiles/alffplay.dir/common/uintmap.c.o  -o alffplay -Wl,-rpath,/Users/windmgc/Programming/proton/build/openal.win32 /usr/local/lib/libSDL2main.a /usr/local/lib/libSDL2.dylib -framework Cocoa /usr/local/l
ib/libavformat.dylib /usr/local/lib/libavcodec.dylib /usr/local/lib/libavutil.dylib /usr/local/lib/libswscale.dylib /usr/local/lib/libswresample.dylib /usr/lib/libz.dylib libopenal.1.18.2.dylib -framework AudioToolbox -framework Applicati
onServices -framework AudioUnit -framework CoreAudio -lpthread -ldl -lm
ld: warning: ignoring file CMakeFiles/alffplay.dir/common/almalloc.c.o, file was built for i386 which is not the architecture being linked (x86_64): CMakeFiles/alffplay.dir/common/almalloc.c.o
ld: warning: ignoring file CMakeFiles/alffplay.dir/common/atomic.c.o, file was built for i386 which is not the architecture being linked (x86_64): CMakeFiles/alffplay.dir/common/atomic.c.o
ld: warning: ignoring file CMakeFiles/alffplay.dir/common/rwlock.c.o, file was built for i386 which is not the architecture being linked (x86_64): CMakeFiles/alffplay.dir/common/rwlock.c.o
ld: warning: ignoring file CMakeFiles/alffplay.dir/common/threads.c.o, file was built for i386 which is not the architecture being linked (x86_64): CMakeFiles/alffplay.dir/common/threads.c.o
ld: warning: ignoring file CMakeFiles/alffplay.dir/common/uintmap.c.o, file was built for i386 which is not the architecture being linked (x86_64): CMakeFiles/alffplay.dir/common/uintmap.c.o
ld: warning: ignoring file libopenal.1.18.2.dylib, file was built for i386 which is not the architecture being linked (x86_64): libopenal.1.18.2.dylib
Undefined symbols for architecture x86_64:

It seems that c++ without a -m32 option takes alffplay as an x86-64 build target, so maybe we need to add this to CMAKE_CXX_FLAGS.

I also noticed that this build process used libSDL2.dylib and libavcodec.dylib and other dynamic libs, so it may be necessary that these libs are well prepared in i386... and I didn't found something like that on my Mac.

Kkergoth 2018-09-12 github

Same issue as #1310. https://github.com/ValveSoftware/Proton/commit/670a128d6a6d1fe915aa42ccd05463c45832b83d will sidestep the issue by disabling the build of alffplay, which we don't need anyway. Ignore the dxvk change in that commit, just the build_proton.sh change is apropos.

Cchy9002 2018-09-12 github

Same issue as #1310. 670a128 will sidestep the issue by disabling the build of alffplay, which we don't need anyway. Ignore the dxvk change in that commit, just the build_proton.sh change is apropos.

Thanks! this solve issue, but there still are some issue in dxvk.

Launch options