wc3lib
wc3lib copied to clipboard
Issues Building & Running on PureOS Byzantium (based on Debian Bullseye)
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.