mosra/magnum

Unable to follow "Getting started" because of compile errors

honix opened this issue · 8 comments

honix commented

Hi!

I'm trying to build and run bootstrap app following steps of Getting started page. CMake build are fine, as I understand the next step is to open sln project and press green "Run" button in Visual Studio. But unfortunately when I trying to compile it, 13 errors occured.

Some errors (sorry, no desc because it shows to me in russian):

C2666 Corrade\Containers\GrowableArray.h::1200
C2672 Corrade\Containers\GrowableArray.h::1200
C2780 Corrade\Containers\GrowableArray.h::1200
...
C2666 Corrade\Utility\Format.cpp::426
C2666 Magnum\Implementation\ImageProperties.h::73	
...

My system: Windows 10, Visual Studio 2022, C++14

mosra commented

Hi!

Sorry for the trouble, thse errors are most probably due to MSVC 2022 not being supported by the code at the moment. Please see mosra/corrade#124 for a temporary workaround.

If you can wait a bit, I'm actually working on fixing MSVC 2022 support right now -- resolving last remaining issues, optimistically that'll be done sometime tomorrow. Stay tuned!

[sorry for the accidental close, pressed way too many keys at once by accident 💥]

honix commented

I did a fresh cmake build with -DMSVC2019_COMPATIBILITY=ON as you did mention, and this solves the problem:

mkdir build && cd build
cmake -DMSVC2019_COMPATIBILITY=ON ..

Thanks!

honix commented

I'm actually working on fixing MSVC 2022 support right now

This will be great! Btw I'll close this issue, as my problem is solved. Thanks again!

upd: sorry if you used this issue as task, reopen if you need to track it

mosra commented

Yes, I'll close this once it's fully resolved :]

mosra commented

Okay, in the end it went much faster than expected. If you update both Corrade and Magnum to latest master, it should just work, without having to specify any option. Details about changes done are in mosra/corrade#124.

honix commented

Yep. I confirm it works now without special flags.

Here is cmake output, it contains warning message about MSVC_COMPATIBILITY, might be interesting:

C:\Users\phuda\Desktop\magnum-bootstrap-base\build>cmake ..
-- Building for: Visual Studio 17 2022
-- Selecting Windows SDK version 10.0.19041.0 to target Windows 10.0.19042.
-- The C compiler identification is MSVC 19.30.30709.0
-- The CXX compiler identification is MSVC 19.30.30709.0
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: C:/Program Files/Microsoft Visual Studio/2022/Community/VC/Tools/MSVC/14.30.30705/bin/Hostx64/x64/cl.exe - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: C:/Program Files/Microsoft Visual Studio/2022/Community/VC/Tools/MSVC/14.30.30705/bin/Hostx64/x64/cl.exe - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
CMake Warning at corrade/CMakeLists.txt:228 (message):
  MSVC 2019+ detected, automatically enabling MSVC_COMPATIBILITY which may
  cause some features to not be available.  You can disable this option if
  you pass /permissive- to the compiler to enable a standards-conforming
  mode.


-- The LIB_SUFFIX variable is not defined. It will be autodetected now.
-- You can set it manually with -DLIB_SUFFIX=<value> (64 for example).
-- LIB_SUFFIX autodetected as '', libraries will be installed into C:/Program Files (x86)/MyApplication/lib
-- Found Git: C:/Program Files/Git/cmd/git.exe (found version "2.33.1.windows.1")
-- Found Corrade: C:/Users/phuda/Desktop/magnum-bootstrap-base/corrade/src  found components: Containers rc Utility
-- Found OpenGL: opengl32
-- Found SDL2: C:/Users/phuda/Desktop/magnum-bootstrap-base/SDL2-2.0.10/lib/x64/SDL2.lib
-- Found Corrade: C:/Users/phuda/Desktop/magnum-bootstrap-base/corrade/src  found components: Containers rc Utility Main TestSuite
-- Found Corrade: C:/Users/phuda/Desktop/magnum-bootstrap-base/corrade/src  found components: Containers rc Utility PluginManager
-- Found Corrade: C:/Users/phuda/Desktop/magnum-bootstrap-base/corrade/src  found components: Containers rc Utility
-- Found Magnum: C:/Users/phuda/Desktop/magnum-bootstrap-base/magnum/src  found components: GL Sdl2Application
-- Configuring done
-- Generating done
-- Build files have been written to: C:/Users/phuda/Desktop/magnum-bootstrap-base/build

C:\Users\phuda\Desktop\magnum-bootstrap-base\build>cmake --version
cmake version 3.21.21080301-MSVC_2

honix commented

Oh, this message (warning) is made by you. Huh.

mosra commented

Yeah, as much as I'd like it to finally behave, MSVC 2022 is still not ideal, and requires special handling. Maybe in 2025 it will.