wc3lib icon indicating copy to clipboard operation
wc3lib copied to clipboard

Issues Building & Running on PureOS Byzantium (based on Debian Bullseye)

Open Retera opened this issue 1 year ago • 4 comments

I tried to compile this project on PureOS which is a Debian-based distribution (similar to Ubuntu) but I encountered a conflict between the suggested libogre-1.9-dev package, and the C++20 support on GCC 10.

As far as I could tell (and it's possible I was reading this incorrectly), the OGRE headers have the following compile error within their header:

error: ‘const_pointer’ in ‘class std::allocator<void>’ does not name a type

which is located in the included file

/usr/include/OGRE/OgreMemorySTLAllocator.h

After monkeying around with this for some time, I found that:

  • Support for the "void" allocator was deprecated in C++17, so I'm guessing it was removed in C++20 but only sorta kinda maybe
  • Installing GCC/G++ 9 and replacing my system install with it (update alternatives - in place of my default GCC/G++ 10), then going into the CMake settings of this project and replacing -std=c++20 with -std=c++2a cause the world to compile in a state where the allocator header compile error does not show, and then the project compiles successfully.

It is late and I am about to sleep, so my understandings of these topics might be incorrect, but this is how it appeared to be for now.

Retera avatar Feb 13 '24 06:02 Retera