Dolphin, the GameCube and Wii emulator - Forums

Full Version: [ SOLVED ] Linux Mint 19.3 unable to compile latest Dev release
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Pages: 1 2
It seems that something unfriendly to Ubuntu \ Debian snuck into the Dev trunk?

/dolphin-emu/Source/Core/Common/MsgHandler.h:85:20: error: invalid use of void expression
      ##__VA_ARGS__)
                   ^
/dolphin-emu/Source/Core/Common/MsgHandler.h:100:3: note: in expansion of macro ‘GenericAlertFmt’
  GenericAlertFmt(true, Common::MsgType::Warning, MASTER_LOG, format, ##__VA_ARGS__)
  ^~~~~~~~~~~~~~~
/dolphin-emu/Source/Core/Common/Assert.h:37:12: note: in expansion of macro ‘PanicYesNoFmt’
      if (!PanicYesNoFmt("An error occurred.\n\n"                                                  \


Please let me know if there are alternate compile instructions or if this is a known issue?
OK, when I blow out my install directory and start from scratch it is failing on a different error:

[ 35%] Building CXX object Externals/glslang/CMakeFiles/glslang.dir/glslang/OSDependent/Unix/ossource.cpp.o
[ 35%] Linking CXX static library libglslang.a
[ 35%] Built target glslang
Makefile:170: recipe for target 'all' failed
make: *** [all] Error 2
Builds fine for me on Pop_OS 21.10. Are you running this in the root of the git before attempting to build? 
Code:
git submodule update --init --recursive

It looks like the version of fmt that you have isn't the one required, which is true on Ubuntu. When running cmake, you should see this:
Quote:CMake Warning at CMakeLists.txt:567 (find_package):

  Could not find a configuration file for package "fmt" that is compatible
  with requested version "8.0".

  The following configuration files were considered but not accepted:

    /usr/lib/x86_64-linux-gnu/cmake/fmt/fmt-config.cmake, version: 7.1.3
    /lib/x86_64-linux-gnu/cmake/fmt/fmt-config.cmake, version: 7.1.3



-- Using static fmt from Externals
-- Module support is disabled.
-- Version: 8.1.1
-- Build type: Release
Tried a recursive submodule init

[ 36%] Built target glslang
Source/Core/Common/CMakeFiles/common.dir/build.make:744: recipe for target 'Source/Core/Common/CMakeFiles/common.dir/x64Emitter.cpp.o' failed
make[2]: *** [Source/Core/Common/CMakeFiles/common.dir/x64Emitter.cpp.o] Error 1
CMakeFiles/Makefile2:1708: recipe for target 'Source/Core/Common/CMakeFiles/common.dir/all' failed
make[1]: *** [Source/Core/Common/CMakeFiles/common.dir/all] Error 2
Makefile:170: recipe for target 'all' failed
make: *** [all] Error 2

It only seems to grab mGBA and QT submodules?
(01-30-2022, 06:28 AM)nbohr1more Wrote: [ -> ][ 36%] Built target glslang
Source/Core/Common/CMakeFiles/common.dir/build.make:744: recipe for target 'Source/Core/Common/CMakeFiles/common.dir/x64Emitter.cpp.o' failed
make[2]: *** [Source/Core/Common/CMakeFiles/common.dir/x64Emitter.cpp.o] Error 1
CMakeFiles/Makefile2:1708: recipe for target 'Source/Core/Common/CMakeFiles/common.dir/all' failed
make[1]: *** [Source/Core/Common/CMakeFiles/common.dir/all] Error 2
Makefile:170: recipe for target 'all' failed
make: *** [all] Error 2

Do you have any additional errors earlier in the log?

(01-30-2022, 06:28 AM)nbohr1more Wrote: [ -> ]It only seems to grab mGBA and QT submodules?

Yes, those are Dolphin's only submodules.
(01-30-2022, 07:24 PM)JosJuice Wrote: [ -> ]Do you have any additional errors earlier in the log?

Yes, it seems that fmt strikes again?

dolphin-emu/Source/Core/Common/MsgHandler.h:85:20: error: invalid use of void expression
##__VA_ARGS__)
^
dolphin-emu/Source/Core/Common/MsgHandler.h:100:3: note: in expansion of macro ‘GenericAlertFmt’
GenericAlertFmt(true, Common::MsgType::Warning, MASTER_LOG, format, ##__VA_ARGS__)
^~~~~~~~~~~~~~~

I guess I could see if there is a more modern fmt than the one that ships in Mint?
ASSERT is just a macro. I feel like you have more messages to show (where that ASSERT is used).
Also, latest master compiles fine for me on Ubuntu 20.04.
Linux Mint 19.3 is based on Ubuntu 18.04, and both of them use an older version of gcc/g++ that doesn't seem to play nicely with the external fmt library that Dolphin provides. Your two options are to upgrade to Linux Mint 20.3 (Ubuntu 20.04) or update your compiler on Linux Mint 19.3.

If you want to keep using Linux Mint 19.3, here's what I tested on Linux Mint 19.3 Cinnamon:
(02-01-2022, 04:45 AM)KHg8m3r Wrote: [ -> ]Linux Mint 19.3 is based on Ubuntu 18.04, and both of them use an older version of gcc/g++ that doesn't seem to play nicely with the external fmt library that Dolphin provides. Your two options are to upgrade to Linux Mint 20.3 (Ubuntu 20.04) or update your compiler on Linux Mint 19.3.

If you want to keep using Linux Mint 19.3, here's what I tested on Linux Mint 19.3 Cinnamon:

Woo!!! Thank you very much! I am back to compiling dev again Smile
Dev is failing to compile again:

make[1]: Entering directory '/home/user/dolphin-emu/Build/CMakeFiles/CMakeTmp'
Building CXX object CMakeFiles/cmTC_52c34.dir/src.cxx.o
/usr/bin/g++-9 -DFLAG_CXX_MISSING_VARIABLE_DECLARATIONS -Werror -Wmissing-variable-declarations -std=c++2a -o CMakeFiles/cmTC_52c34.dir/src.cxx.o -c /home/user/dolphin-emu/Build/CMakeFiles/CMakeTmp/src.cxx
g++-9: error: unrecognized command line option '-Wmissing-variable-declarations'; did you mean '-Wmissing-declarations'?
CMakeFiles/cmTC_52c34.dir/build.make:84: recipe for target 'CMakeFiles/cmTC_52c34.dir/src.cxx.o' failed
make[1]: *** [CMakeFiles/cmTC_52c34.dir/src.cxx.o] Error 1
make[1]: Leaving directory '/home/user/dolphin-emu/Build/CMakeFiles/CMakeTmp'
Makefile:140: recipe for target 'cmTC_52c34/fast' failed
make: *** [cmTC_52c34/fast] Error 2
Pages: 1 2