Please code in plain and simple C instead: get your own simple object model if you need it, and use the C preprocessor for namespace/name mangling (projects can grow to very large with this). Yes it is a bit more work because this is not anymore ULTRAMEGA technically expensive sugar builtin in the compiler.
My 2c.
And for the elf/linux build, don't forget the compiling and linking options "-static-libgcc", "-static-libstdc++"(if you have some c++ somewhere),"-ftls-model=global-dynamic" and use a very old glibc for linking (or use the binutils gas .symver directive, see binutils ld doc) in order to select version names for an ABI at least 7-8 years in the past (2017-2019 for the first elf/linux AAA games). It means you MUST not use the default glibc of a very recent elf/linux distro for linking (unless you go for the binutils gas .symver directive, see binutils ld manual).
Please code in plain and simple C instead: get your own simple object model if you need it, and use the C preprocessor for namespace/name mangling (projects can grow to very large with this). Yes it is a bit more work because this is not anymore ULTRAMEGA technically expensive sugar builtin in the compiler.
My 2c.
And for the elf/linux build, don't forget the compiling and linking options "-static-libgcc", "-static-libstdc++"(if you have some c++ somewhere),"-ftls-model=global-dynamic" and use a very old glibc for linking (or use the binutils gas .symver directive, see binutils ld doc) in order to select version names for an ABI at least 7-8 years in the past (2017-2019 for the first elf/linux AAA games). It means you MUST not use the default glibc of a very recent elf/linux distro for linking (unless you go for the binutils gas .symver directive, see binutils ld manual).