Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

sdl2-mixer[opusfile,libflac,libmodplug,libvorbis,mpg123] build failure #15335

Closed
zulc22 opened this issue Dec 28, 2020 · 13 comments
Closed

sdl2-mixer[opusfile,libflac,libmodplug,libvorbis,mpg123] build failure #15335

zulc22 opened this issue Dec 28, 2020 · 13 comments
Assignees
Labels
category:port-bug The issue is with a library, which is something the port should already support category:port-update The issue is with a library, which is requesting update new revision depends:upstream-changes Waiting on a change to the upstream project

Comments

@zulc22
Copy link

zulc22 commented Dec 28, 2020

Host Environment

  • OS: Windows 10 20H2 (en-US)
  • Visual Studio 2019, 2017 build tools, 2005, .NET 2003
    Other packages work fine -- don't know what the "Compiler: revision" means in the context of this template.
PS C:\Users\zulc22> vcpkg install sdl2-mixer[opusfile]
Computing installation plan...
The following packages will be built and installed:
    sdl2-mixer[core,nativemidi,opusfile]:x86-windows -> 2.0.4#10
Detecting compiler hash for triplet x86-windows...
Could not locate cached archive: C:\Users\zulc22\AppData\Local\vcpkg\archives\51\51e353a357690aed46faee8c51751dfaa18e9414.zip
Starting package 1/1: sdl2-mixer:x86-windows
Building package sdl2-mixer[core,nativemidi,opusfile]:x86-windows...
-- Using cached C:/vcpkg/downloads/SDL2_mixer-2.0.4.zip
-- Cleaning sources at C:/vcpkg/buildtrees/sdl2-mixer/src/2.0.4-a895b09396.clean. Use --editable to skip cleaning for the packages you specify.
-- Extracting source C:/vcpkg/downloads/SDL2_mixer-2.0.4.zip
-- Using source at C:/vcpkg/buildtrees/sdl2-mixer/src/2.0.4-a895b09396.clean
-- Configuring x86-windows
-- Building x86-windows-dbg
CMake Error at scripts/cmake/vcpkg_execute_build_process.cmake:145 (message):
    Command failed: C:/vcpkg/downloads/tools/cmake-3.18.4-windows/cmake-3.18.4-win32-x86/bin/cmake.exe --build . --config Debug --target install -- -v -j13
    Working Directory: C:/vcpkg/buildtrees/sdl2-mixer/x86-windows-dbg
    See logs for more information:
      C:\vcpkg\buildtrees\sdl2-mixer\install-x86-windows-dbg-out.log

Call Stack (most recent call first):
  scripts/cmake/vcpkg_build_cmake.cmake:96 (vcpkg_execute_build_process)
  scripts/cmake/vcpkg_install_cmake.cmake:27 (vcpkg_build_cmake)
  ports/sdl2-mixer/portfile.cmake:50 (vcpkg_install_cmake)
  scripts/ports.cmake:136 (include)


Error: Building package sdl2-mixer:x86-windows failed with: BUILD_FAILED
Please ensure you're using the latest portfiles with `.\vcpkg update`, then
submit an issue at https://github.com/Microsoft/vcpkg/issues including:
  Package: sdl2-mixer:x86-windows
  Vcpkg version: 2020.11.12-nohash

Additionally, attach any relevant sections from the log files above.

install-x86-windows-dbg-out.log

@zulc22
Copy link
Author

zulc22 commented Dec 28, 2020

the other sdl2-mixer features i've tried work fine on my system as well, right now opusfile is the only exception i can find.

EDIT: ALL of the additional format features do not work either, except nativemidi (flac, modplug, mpg123, ogg).
Log from attempted build of sdl2-mixer[core,libflac,libmodplug,libvorbis,mpg123,nativemidi]:x86-windows:
install-x86-windows-dbg-out.log

@zulc22 zulc22 changed the title [sdl2-mixer[opusfile]] build failure [sdl2-mixer[opusfile,libflac,libmodplug,libvorbis,mpg123]] build failure Dec 28, 2020
@zulc22 zulc22 changed the title [sdl2-mixer[opusfile,libflac,libmodplug,libvorbis,mpg123]] build failure sdl2-mixer[opusfile,libflac,libmodplug,libvorbis,mpg123] build failure Dec 28, 2020
@JackBoosY JackBoosY self-assigned this Dec 28, 2020
@JackBoosY
Copy link
Contributor

music_opus.c.obj : error LNK2019: unresolved external symbol _op_open_callbacks referenced in function _OPUS_Load
music_opus.c.obj : error LNK2019: unresolved external symbol _op_free referenced in function _OPUS_Load
music_opus.c.obj : error LNK2019: unresolved external symbol _op_seekable referenced in function _OPUS_Load
music_opus.c.obj : error LNK2019: unresolved external symbol _op_head referenced in function _OPUS_Load
music_opus.c.obj : error LNK2019: unresolved external symbol _op_pcm_seek referenced in function _OPUS_Load
music_opus.c.obj : error LNK2019: unresolved external symbol _op_read referenced in function _OPUS_Load
SDL2_mixer.dll : fatal error LNK1120: 6 unresolved externals
music_flac.c.obj : error LNK2019: unresolved external symbol __imp__FLAC__stream_decoder_new referenced in function _FLAC_Load
music_flac.c.obj : error LNK2019: unresolved external symbol __imp__FLAC__stream_decoder_delete referenced in function _FLAC_Load
music_flac.c.obj : error LNK2019: unresolved external symbol __imp__FLAC__stream_decoder_get_state referenced in function _FLAC_Load
music_flac.c.obj : error LNK2019: unresolved external symbol __imp__FLAC__stream_decoder_init_stream referenced in function _FLAC_Load
music_flac.c.obj : error LNK2019: unresolved external symbol __imp__FLAC__stream_decoder_finish referenced in function _FLAC_Load
music_flac.c.obj : error LNK2019: unresolved external symbol __imp__FLAC__stream_decoder_flush referenced in function _FLAC_Load
music_flac.c.obj : error LNK2019: unresolved external symbol __imp__FLAC__stream_decoder_process_single referenced in function _FLAC_Load
music_flac.c.obj : error LNK2019: unresolved external symbol __imp__FLAC__stream_decoder_process_until_end_of_metadata referenced in function _FLAC_Load
music_flac.c.obj : error LNK2019: unresolved external symbol __imp__FLAC__stream_decoder_process_until_end_of_stream referenced in function _FLAC_Load
music_flac.c.obj : error LNK2019: unresolved external symbol __imp__FLAC__stream_decoder_seek_absolute referenced in function _FLAC_Load
music_modplug.c.obj : error LNK2019: unresolved external symbol __imp__ModPlug_Load referenced in function _MODPLUG_Load
music_modplug.c.obj : error LNK2019: unresolved external symbol __imp__ModPlug_Unload referenced in function _MODPLUG_Load
music_modplug.c.obj : error LNK2019: unresolved external symbol __imp__ModPlug_Read referenced in function _MODPLUG_Load
music_modplug.c.obj : error LNK2019: unresolved external symbol __imp__ModPlug_Seek referenced in function _MODPLUG_Load
music_modplug.c.obj : error LNK2019: unresolved external symbol __imp__ModPlug_GetSettings referenced in function _MODPLUG_Load
music_modplug.c.obj : error LNK2019: unresolved external symbol __imp__ModPlug_SetSettings referenced in function _MODPLUG_Load
music_modplug.c.obj : error LNK2019: unresolved external symbol __imp__ModPlug_SetMasterVolume referenced in function _MODPLUG_Load
music_mpg123.c.obj : error LNK2019: unresolved external symbol _mpg123_init referenced in function _MPG123_Load
music_mpg123.c.obj : error LNK2019: unresolved external symbol _mpg123_exit referenced in function _MPG123_Load
music_mpg123.c.obj : error LNK2019: unresolved external symbol _mpg123_new referenced in function _MPG123_Load
music_mpg123.c.obj : error LNK2019: unresolved external symbol _mpg123_delete referenced in function _MPG123_Load
music_mpg123.c.obj : error LNK2019: unresolved external symbol _mpg123_plain_strerror referenced in function _MPG123_Load
music_mpg123.c.obj : error LNK2019: unresolved external symbol _mpg123_strerror referenced in function _MPG123_Load
music_mpg123.c.obj : error LNK2019: unresolved external symbol _mpg123_rates referenced in function _MPG123_Load
music_mpg123.c.obj : error LNK2019: unresolved external symbol _mpg123_format_none referenced in function _MPG123_Load
music_mpg123.c.obj : error LNK2019: unresolved external symbol _mpg123_format referenced in function _MPG123_Load
music_mpg123.c.obj : error LNK2019: unresolved external symbol _mpg123_getformat referenced in function _MPG123_Load
music_mpg123.c.obj : error LNK2019: unresolved external symbol _mpg123_open_handle referenced in function _MPG123_Load
music_mpg123.c.obj : error LNK2019: unresolved external symbol _mpg123_close referenced in function _MPG123_Load
music_mpg123.c.obj : error LNK2019: unresolved external symbol _mpg123_read referenced in function _MPG123_Load
music_mpg123.c.obj : error LNK2019: unresolved external symbol _mpg123_seek referenced in function _MPG123_Load
music_mpg123.c.obj : error LNK2019: unresolved external symbol _mpg123_replace_reader_handle referenced in function _MPG123_Load
music_ogg.c.obj : error LNK2019: unresolved external symbol _ov_clear referenced in function _OGG_Load
music_ogg.c.obj : error LNK2019: unresolved external symbol _ov_open_callbacks referenced in function _OGG_Load
music_ogg.c.obj : error LNK2019: unresolved external symbol _ov_pcm_total referenced in function _OGG_Load
music_ogg.c.obj : error LNK2019: unresolved external symbol _ov_pcm_seek referenced in function _OGG_Load
music_ogg.c.obj : error LNK2019: unresolved external symbol _ov_time_seek referenced in function _OGG_Load
music_ogg.c.obj : error LNK2019: unresolved external symbol _ov_pcm_tell referenced in function _OGG_Load
music_ogg.c.obj : error LNK2019: unresolved external symbol _ov_info referenced in function _OGG_Load
music_ogg.c.obj : error LNK2019: unresolved external symbol _ov_comment referenced in function _OGG_Load
music_ogg.c.obj : error LNK2019: unresolved external symbol _ov_read referenced in function _OGG_Load
SDL2_mixer.dll : fatal error LNK1120: 41 unresolved externals

@JackBoosY JackBoosY added the category:port-bug The issue is with a library, which is something the port should already support label Dec 28, 2020
@JackBoosY
Copy link
Contributor

Confirmed.

@JackBoosY
Copy link
Contributor

Since mixer's dependency opus have been updated to 1.3.1, and the current mixer's requires opus version is 0.10, some opus functions used by some mixers have been deprecated, so we should upgrade the mixer.

@JackBoosY JackBoosY added the category:port-update The issue is with a library, which is requesting update new revision label Dec 28, 2020
@JackBoosY
Copy link
Contributor

But for now, the latest mixer doesn't support the latest opus.

@JackBoosY JackBoosY added the depends:upstream-changes Waiting on a change to the upstream project label Dec 28, 2020
@noam-c
Copy link
Contributor

noam-c commented Dec 31, 2020

@JackBoosY Is the cause the same for the other libraries? I'm unable to install even without opus (i.e. just sdl2-mixer[mpg123]). I get some of the same linker errors shown in your log.

Package: sdl2-mixer:x64-windows
Vcpkg version: 2020.11.12-nohash

install-x64-windows-dbg-out.log

I'm reproing this issue on Windows 8.1, on commit 5c262f6.

@JackBoosY
Copy link
Contributor

@noam-c Same issue, but only related to sdl2-mixer, not sdl2.

@zulc22
Copy link
Author

zulc22 commented Jan 11, 2021

is there any possible workaround for now? vcpkg is the only way i can stand to install libraries when using visual studio. i'd really prefer not to compile the libs myself and spend 3 hours debugging include and library directory configurations in the terribly sorted properties window

@JackBoosY
Copy link
Contributor

@zulc22 Currently no, we should wait for #11758 merge then set the minimum version of opus that sdl2-mixer depends on to 0.1.0 or wait for upstream fix this issue.

@thomak-dev
Copy link

It looks like versioning is now ready? Is there any ETA for this issue? I don't want to switch over to old school library management of all SDL libraries just because of mpg123

@JackBoosY
Copy link
Contributor

@thomak-dev Versioning is ready, but we do not support selecting a version in vcpkg by default (by adding a fixed version number in CONTROL or manifest), you can add an overlay port to do it.
See documentation.

@vividos
Copy link
Contributor

vividos commented May 26, 2022

I get this error also in one of my projects that I'm converting to vcpkg. Is this a simple matter of adjusting the vcpkg.json file of the sdl2-mixer port now? In this line?

https://github.com/microsoft/vcpkg/blob/master/ports/sdl2-mixer/vcpkg.json#L61

There also seems to be a new SDL2_Mixer version being prepared, which would make the issue go away anyway, but it would be nice to use SDL2_mixer right away.

Thanks!

vividos added a commit to vividos/UnderworldAdventures that referenced this issue May 26, 2022
@JackBoosY
Copy link
Contributor

Close this PR until upstream fixes this.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
category:port-bug The issue is with a library, which is something the port should already support category:port-update The issue is with a library, which is requesting update new revision depends:upstream-changes Waiting on a change to the upstream project
Projects
None yet
Development

No branches or pull requests

5 participants